起動オプションでのBOMの有無の指定方法No.40625
fzok4234 さん 23/06/15 20:40
 
こんばんは、Fzok4234 です。


さて、初歩的な質問になるのですが、コマンドラインから新規作成で起動する際、文
字コードを
UTF-8 、UTF-16 ( LE 及び BE ) 、又は UTF-32 ( LE 及び BE ) とした上で、明示的に
「BOM の有無」と「改行コードの CR 、LF 、又は CR+LF」との両方を同時に指定す
る方法が分かりません。

文字コードと改行コードを同時に指定する場合は、/f に続けてマクロの encode
キーワードの数値を
10 進数文字列で指定することになるのですが、encode キーワードの数値には 0 〜
5 bit の文字コードと
6 〜 7 bit の改行コードの指定があるだけで、「BOM の有無」を指定するビットが
定義されていません。

このため、コマンドラインから「BOM の有無」が明示的に指定できない状態です。

一応 UTF-8 だけは、BOM 有りの /fu8b と BOM 無しの /fu8 の両方があって「BOM
の有無」が指定可能な
ようですが、これを使用すると「改行コードの CR 、LF 、又は CR+LF」が指定でき
なくなってしまいます。




[ ]
RE:40625 起動オプションでのBOMの有無のNo.40629
秀丸担当 さん 23/06/16 09:23
 
ご指摘ありがとうございます。
起動オプションでは、BOMの指定は確かにできないです。
やるとしたらマクロでやるしかないです。
できるようにするか、今後検討していきます。

[ ]
RE:40629 起動オプションでのBOMの有無のNo.40633
fzok4234 さん 23/06/16 12:08
 
回答ありがとうございます。


>やるとしたらマクロでやるしかないです。

とのことですが、/x オプションで BOM の有無を切り替えるマクロを挟んだ場合、
https://www.maruo.co.jp/hidesoft/4/x10173_.html?a=3#10173
でも指摘したように自動起動マクロが動作しなくなる問題が起きるため、マクロでの
対処は NG となります。

できるだけ早く BOM 指定のコマンドラインオプションが新設されることを願うばか
りです。



[ ]
RE:40629 起動オプションでのBOMの有無のNo.40658
fzok4234 さん 23/06/21 17:02
 
先ほど 9.23 正式版に更新いたしましたが、/f オプションの -lf/-cr/-crlf/-bom/-
nobom スイッチを
テストしようとしたところ、新規作成のときには「動作環境」->「ファイル」->「エ
ンコード1」->
「新規作成やASCIIのとき」の設定が優先されてしまって /f オプションが全く動作
しない状態に
なっていました。

例えば、「新規作成やASCIIのとき」の設定が「UTF-8 、LF、BOM 無し」なら、下記
のいずれの
コマンドラインでも全て「UTF-8 、LF、BOM 無し」のタブが開かれてしまいます。

hidemaru /fs
hidemaru /fs-crlf
hidemaru /fu
hidemaru /fu-crlf
hidemaru /fu-bom
hidemaru /fu-crlf-bom
hidemaru /fu32
hidemaru /fu32-cr
hidemaru /fu32-cr-nobom


一応、「ファイルタイプ別の設定 ( 共通 ) 」->「その他」->「保存・読み込み」->
「エンコードの種類の指定」は「自動判定、改行=自動、BOM自動」となっています。



[ ]
RE:40658 起動オプションでのBOMの有無のNo.40661
秀丸担当 さん 23/06/21 17:47
 
ご確認ありがとうございます。
/fオプションは、開くファイル名指定したときに効果があるオプションでした。
たぶん前からそうなっているはずだと思います。
存在しないファイル名の新規ファイルとなるときに効果があって、以前に途中から追
加された/fu8bもその場面でしか使えないものでした。
ファイル名なしの新規作成状態に適用できてよさそうと思いましたが、それだといき
なりV9.23で仕様変更となってしまうのでやめておきました。

[ ]
RE:40661 起動オプションでのBOMの有無のNo.40663
fzok4234 さん 23/06/21 21:19
 
> /fオプションは、開くファイル名指定したときに効果があるオプションでした。
> ファイル名なしの新規作成状態に適用できてよさそうと思いましたが、それだとい
>きなりV9.23で
> 仕様変更となってしまうのでやめておきました。

/f オプションがファイル名無しの新規作成では使えないことは「仕様」であること
を承知いたしました。
一応、ヘルプの方にちゃんとこのことを記述しておいた方がよいと思います。


ということで、改めて新規作成での /f オプションの -lf/-cr/-crlf/-bom/-nobom
スイッチのテストを、
ファイル名を明示的に指定して実行いたしました。

すると、Shift-JIS の /fs 及び UTF-32 BE の/fu32b でスイッチが動作しないこと
が判明しました。
どのスイッチの組み合わせでも /fs では「CRLF」に、/fu32b では「CRLF 、BOM 有
り」になって
しまいます。

Shift-JIS 及び UTF-32 BE については、encode キーワードの数値を用いて /f1 及
び /f28 を使用した場合は
正常に動作しました。

テストの各コマンドライン及びその実行結果は以下の通りです。

hidemaru /fs "aaa"                      -> 〇: CRLF
hidemaru /fs-cr "aaa"                   -> ×: CRLF になってしまう
hidemaru /fs-lf "aaa"                   -> ×: CRLF になってしまう
hidemaru /fs-crlf "aaa"                 -> 〇
hidemaru /f1 "aaa"                      -> 〇: CRLF
hidemaru /f1-cr "aaa"                   -> 〇
hidemaru /f1-lf "aaa"                   -> 〇
hidemaru /f1-crlf "aaa"                 -> 〇
hidemaru /fu "aaa"                      -> 〇: CRLF 、BOM 有り
hidemaru /fu-cr "aaa"                   -> 〇: BOM 有り
hidemaru /fu-lf "aaa"                   -> 〇: BOM 有り
hidemaru /fu-crlf "aaa"                 -> 〇: BOM 有り
hidemaru /fu-nobom "aaa"                -> 〇: CRLF
hidemaru /fu-bom "aaa"                  -> 〇: CRLF
hidemaru /fu-cr-nobom "aaa"             -> 〇
hidemaru /fu-lf-nobom "aaa"             -> 〇
hidemaru /fu-crlf-nobom "aaa"           -> 〇
hidemaru /fu-cr-bom "aaa"               -> 〇
hidemaru /fu-lf-bom "aaa"               -> 〇
hidemaru /fu-crlf-bom "aaa"             -> 〇
hidemaru /fub "aaa"                     -> 〇: CRLF 、BOM 有り
hidemaru /fub-cr "aaa"                  -> 〇: BOM 有り
hidemaru /fub-lf "aaa"                  -> 〇: BOM 有り
hidemaru /fub-crlf "aaa"                -> 〇: BOM 有り
hidemaru /fub-nobom "aaa"               -> 〇: CRLF
hidemaru /fub-bom "aaa"                 -> 〇: CRLF
hidemaru /fub-cr-nobom "aaa"            -> 〇
hidemaru /fub-lf-nobom "aaa"            -> 〇
hidemaru /fub-crlf-nobom "aaa"          -> 〇
hidemaru /fub-cr-bom "aaa"              -> 〇
hidemaru /fub-lf-bom "aaa"              -> 〇
hidemaru /fub-crlf-bom "aaa"            -> 〇
hidemaru /fe "aaa"                      -> 〇: LF
hidemaru /fe-cr "aaa"                   -> 〇
hidemaru /fe-lf "aaa"                   -> 〇
hidemaru /fe-crlf "aaa"                 -> 〇
hidemaru /fj "aaa"                      -> 〇: LF
hidemaru /fj-cr "aaa"                   -> 〇
hidemaru /fj-lf "aaa"                   -> 〇
hidemaru /fj-crlf "aaa"                 -> 〇
hidemaru /fu7 "aaa"                     -> 〇: CRLF
hidemaru /fu7-cr "aaa"                  -> 〇
hidemaru /fu7-lf "aaa"                  -> 〇
hidemaru /fu7-crlf "aaa"                -> 〇
hidemaru /fu8 "aaa"                     -> 〇: CRLF 、BOM 無し
hidemaru /fu8-cr "aaa"                  -> 〇: BOM 無し
hidemaru /fu8-lf "aaa"                  -> 〇: BOM 無し
hidemaru /fu8-crlf "aaa"                -> 〇: BOM 無し
hidemaru /fu8-nobom "aaa"               -> 〇: CRLF
hidemaru /fu8-bom "aaa"                 -> 〇: CRLF
hidemaru /fu8-cr-nobom "aaa"            -> 〇
hidemaru /fu8-lf-nobom "aaa"            -> 〇
hidemaru /fu8-crlf-nobom "aaa"          -> 〇
hidemaru /fu8-cr-bom "aaa"              -> 〇
hidemaru /fu8-lf-bom "aaa"              -> 〇
hidemaru /fu8-crlf-bom "aaa"            -> 〇
hidemaru /fu8b "aaa"                    -> 〇: CRLF
hidemaru /fu8b-cr "aaa"                 -> 〇
hidemaru /fu8b-lf "aaa"                 -> 〇
hidemaru /fu8b-crlf "aaa"               -> 〇
hidemaru /fcs "aaa"                     -> 〇: CRLF
hidemaru /fcs-cr "aaa"                  -> 〇
hidemaru /fcs-lf "aaa"                  -> 〇
hidemaru /fcs-crlf "aaa"                -> 〇
hidemaru /fct "aaa"                     -> 〇: CRLF
hidemaru /fct-cr "aaa"                  -> 〇
hidemaru /fct-lf "aaa"                  -> 〇
hidemaru /fct-crlf "aaa"                -> 〇
hidemaru /fk "aaa"                      -> 〇: CRLF
hidemaru /fk-cr "aaa"                   -> 〇
hidemaru /fk-lf "aaa"                   -> 〇
hidemaru /fk-crlf "aaa"                 -> 〇
hidemaru /fa "aaa"                      -> 〇: CRLF
hidemaru /fa-cr "aaa"                   -> 〇
hidemaru /fa-lf "aaa"                   -> 〇
hidemaru /fa-crlf "aaa"                 -> 〇
hidemaru /fu32 "aaa"                    -> 〇: CRLF 、BOM 有り
hidemaru /fu32-cr "aaa"                 -> 〇: BOM 有り
hidemaru /fu32-lf "aaa"                 -> 〇: BOM 有り
hidemaru /fu32-crlf "aaa"               -> 〇: BOM 有り
hidemaru /fu32-nobom "aaa"              -> 〇: CRLF
hidemaru /fu32-bom "aaa"                -> 〇: CRLF
hidemaru /fu32-cr-nobom "aaa"           -> 〇
hidemaru /fu32-lf-nobom "aaa"           -> 〇
hidemaru /fu32-crlf-nobom "aaa"         -> 〇
hidemaru /fu32-cr-bom "aaa"             -> 〇
hidemaru /fu32-lf-bom "aaa"             -> 〇
hidemaru /fu32-crlf-bom "aaa"           -> 〇
hidemaru /fu32b "aaa"                   -> 〇: CRLF 、BOM 有り
hidemaru /fu32b-cr "aaa"                -> ×: CRLF 、BOM 有り になってしまう
hidemaru /fu32b-lf "aaa"                -> ×: CRLF 、BOM 有り になってしまう
hidemaru /fu32b-crlf "aaa"              -> 〇: CRLF 、BOM 有り
hidemaru /fu32b-nobom "aaa"             -> ×: CRLF 、BOM 有り になってしまう
hidemaru /fu32b-bom "aaa"               -> 〇: CRLF 、BOM 有り
hidemaru /fu32b-cr-nobom "aaa"          -> ×: CRLF 、BOM 有り になってしまう
hidemaru /fu32b-lf-nobom "aaa"          -> ×: CRLF 、BOM 有り になってしまう
hidemaru /fu32b-crlf-nobom "aaa"        -> ×: CRLF 、BOM 有り になってしまう
hidemaru /fu32b-cr-bom "aaa"            -> ×: CRLF 、BOM 有り になってしまう
hidemaru /fu32b-lf-bom "aaa"            -> ×: CRLF 、BOM 有り になってしまう
hidemaru /fu32b-crlf-bom "aaa"          -> 〇: CRLF 、BOM 有り
hidemaru /f28 "aaa"                     -> 〇: CRLF 、BOM 有り
hidemaru /f28-cr "aaa"                  -> 〇: BOM 有り
hidemaru /f28-lf "aaa"                  -> 〇: BOM 有り
hidemaru /f28-crlf "aaa"                -> 〇: BOM 有り
hidemaru /f28-nobom "aaa"               -> 〇: CRLF
hidemaru /f28-bom "aaa"                 -> 〇: CRLF
hidemaru /f28-cr-nobom "aaa"            -> 〇
hidemaru /f28-lf-nobom "aaa"            -> 〇
hidemaru /f28-crlf-nobom "aaa"          -> 〇
hidemaru /f28-cr-bom "aaa"              -> 〇
hidemaru /f28-lf-bom "aaa"              -> 〇
hidemaru /f28-crlf-bom "aaa"            -> 〇
hidemaru /f15 "aaa"                     -> 〇: CRLF
hidemaru /f15-cr "aaa"                  -> 〇
hidemaru /f15-lf "aaa"                  -> 〇
hidemaru /f15-crlf "aaa"                -> 〇



[ ]
RE:40663 起動オプションでのBOMの有無のNo.40664
秀丸担当 さん 23/06/22 09:31
 
詳しい情報ありがとうございます。
確かに/fsと/fu32bの場合の組み合わせについてはうまくいっていませんでした。
この場合もできるように修正させていただきます。

[ ]
RE:40664 起動オプションでのBOMの有無のNo.40679
fzok4234 さん 23/07/03 17:00
 
9.25β1 にて、/fs と /fu32b で -lf/-cr/-crlf/-bom/-nobom スイッチが正常に動
作することが確認できました。修正ありがとうございます。


[ ]