テキストファイルの読み書き関数(TKInfo.dll)(Ver7.33対応版)
テキスト形式ファイルの内容を文字列変数に代入したり、文字列変数の内容をテキストファイルに保存する関数を用意しました。(以前から用意してはあったんですが、V6.41から正式公開とします)
- LoadStringFromFile関数
-
LoadStringFromFile関数は、パラメータで指定されたファイルをロードして、その内容を返り値として返します。
読み込みに失敗したり、ファイルの中身が空っぽだった場合は""が返ります。
ファイルのエンコード種類は、Shift-JISか、またはBOM付きのUTF-8/UTF-16なら正しく解釈します。BOM無しのUTF-8ファイルはShift-JISの扱いになってしまいます。
ファイルサイズが64キロバイトを超える場合は64キロバイト付近で勝手に切って読み込まれます。
パラメータはファイル名だけです。
例 |
loaddll "tkinfo.dll";
$text = dllfuncstr( "LoadStringFromFile", dllfuncstr("HomeDir") + "AdrBook.txt" );
message "アドレス帳のサイズ = " + str(strlen($text));
|
- SaveStringToFile関数
-
文字列変数の内容をそのままテキスト形式ファイルとして保存します。Shift-JIS形式か、またはUTF-16(BOMあり)形式のみサポートしています。ユニコード文字を含んでいる文字列は、Shift-JISを指定してても勝手にUTF-16形式で保存されます。
パラメータ1:保存する先のファイル名(文字列型)
パラメータ2:文字列の内容(文字列型)
パラメータ3:追加書き込みの場合は1、普通の書き込みなら0を指定する(数値型)
パラメータ4:エンコードの種類の指定。0=Shift-JIS、1=UTF-16(BOMあり)、2=UTF-8、3=UTF-8(BOMあり)。(数値型)
返り値:成功したら1、失敗したら0(数値型)
秀丸メールのVersion 6.64β8からutf-8対応しています。古いバージョンだとパラメータ4には0か1しか指定できません。
例 |
loaddll "tkinfo.dll";
#n = dllfunc("SaveStringToFile", "C:\\test\\abc.txt", "本文", 0, 0);
if( #n == 0 ) {
#n = dllfunc("Bypass_GetLastError");
message "保存に失敗しました。エラーコード = " + str(#n);
}
|