|
ファイルを読み書きする方法として、秀丸エディタの機能ではないですがFileSystem
Objectを使う方法があります。
//読込みの例
#objFso=createobject("Scripting.FileSystemObject");
#objFile=member(#objFso,"OpenTextFile","c:\\folder\\bigfile.txt");
$strLine=member(#objFile,"ReadLine");
member #objFile,"Close";
message $strLine;
endmacro;
//書き込みの例
$savetext="保存テキスト";
#objFso=createobject("Scripting.FileSystemObject");
#objFile=member(#objFso,"OpenTextFile","c:\\folder\\test.txt",2,1);
member #objFile,"WriteLine",$savetext;
member #objFile,"Close";
endmacro;
秀丸エディタの機能としてやるとしたら、ファイルの一部を読み込んだり、saveasで
選択だけを保存する方法があります。
UTF-8とかだとこちらのほうがいいかもしれないです。
//ファイルの一部を読み込みを使う例
#h=hidemaruhandle(0);
openfile "/h /l0,10000,0 c:\\folder\\bigfile.txt";
#hOpen=hidemaruhandle(0);
gofiletop;
selectline;
$strLine=gettext(seltopx,seltopy,selendx,selendy);
setactivehidemaru #h;
closehidemaru #hOpen;
message $strLine;
endmacro;
//文字列をファイルに保存する例
disabledraw;
$savetext="保存テキスト";
#x=x;
#y=y;
insert $savetext;
beginsel;
moveto #x,#y;
saveas "c:\\folder\\test.txt",utf8,bom,selection;
undo;
endmacro;
秀丸エディタのマクロとしては基本的に本文にあることを前提としていて、エンコー
ディングの指定/自動判定/設定が本文と同等の動きをすることになります。FileSyst
emObjectのように読み書きだけをする専用の関数で、本文と同等レベルの関数となる
と、作るのがちょっとややこしいことになります。
本文と同等でなくて、シンプルな読み書きの関数を作るとしたら比較的やりやすいと
思いますが、それだとFileSystemObjectと大差ないことになると思います。
|
|