選択範囲を別ファイルに保存するコマンドNo.08856
IKKI さん 15/11/27 06:37
 
秀丸担当さん、おはようございます。

編集中の文書の一部(選択範囲)を別ファイルに保存するコマンドを新設できません
でしょうか。

hidesoft.4:07917 のような話はよくある話で、現時点での正解は「COM の FileSyst
emObject を使う」もしくは「サードパーティーの DLL を使う」なのですが、その発
想にたどり着くのはなかなかハードルが高くて、今も多くのユーザーが openfile /h
 と格闘してるんじゃないかと思います。
それに、FileSystemObject では Shift_JIS か UTF-16 でしか書き出せません。
[ファイル] メニューに [選択範囲を別ファイルに保存] という項目があれば、キー
操作の記録でマクロを作っている人にも使えるし、なにかと役に立ちそうな気がしま
すが、いかがでしょうか。

イメージとしては…

 savefilepart "abc.txt", utf8, lf, bom; // 選択範囲を別ファイルへ保存
 appendfilepart "abc.txt", utf8, lf, bom; // 選択範囲を別ファイルへ追加保存
 // いずれも複数選択の場合は各範囲を改行で連結した文字列を書き出す

…もしくは…

 savetext $text, "abc.txt", utf8, lf, bom; // 文字列を別ファイルへ保存
 appendtext $text, "abc.txt", utf8, lf, bom; // 文字列を別ファイルへ追加保存

…という感じです。

五月雨式のネタ出しで恐縮ですが、ご検討いただければ幸いです。

[ ]
RE:08856 選択範囲を別ファイルに保存するNo.08859
秀丸担当 さん 15/11/27 15:41
 

選択された範囲だけを保存するというコマンドは確かに無いです。
単一選択であれば比較的やりやすいと思います。
ご意見参考にさせていただきます。

現状でrunexを使ってできないかと思ったのですが、簡単ではなさそうでした。

runex "xxxxx.exe"
        , 1
        , 5, ""  //stdin : selection
        , 2, "c:\\folder\\output.txt"  //stdout : file
        , 0, "", 0, "", 2 , 1
        , 6   //unicode 0:ansi 2:utf-16 6:utf-8
        ;

もし標準入力をそのまま標準出力に出すコマンドがWindows標準であれば簡単な
のですが、意外にそういうコマンドは無いようです。
typeとかmoreとかechoとかどれもだめなようでした。

[ ]
RE:08859 選択範囲を別ファイルに保存するNo.08862
IKKI さん 15/11/28 14:43
 
>もし標準入力をそのまま標準出力に出すコマンドがWindows標準であれば簡単な
>のですが、意外にそういうコマンドは無いようです。
そうそう、それがないんですよね。
runex を使うとすると cat コマンド相当のものを拾ってくるか自分で作るかという
話になって本末転倒な。

>単一選択であれば比較的やりやすいと思います。
はい、単一選択だけでも十分意味があると思います。

自己ツッコミですが…
> >  savetext $text, "abc.txt", utf8, lf, bom; // 文字列を別ファイルへ保存
> >  appendtext $text, "abc.txt", utf8, lf, bom; // 文字列を別ファイルへ追
>加保存
これだと既存の方法と同じく変数サイズの制約を受けるので、あまり嬉しくないです
ね。
やるとしたら、やはり選択範囲か、開始座標・終了座標を指定する方式が良さそうで
す。

[ ]
RE:08862 選択範囲を別ファイルに保存するNo.08867
秀丸担当 さん 15/11/30 15:37
 

変数の内容をファイルに保存するのは確かに制約がでてきて都合が悪いことがあ
ると思います。
キー割り当てするコマンドでやるとしたら選択範囲になると思います。
マクロでやるとしても選択範囲か指定された範囲のほうがよさそうです。

[ ]