|
よくよく考えたら,前に書いたマクロではエラーが起こりそうも
なかったので,もっと具体的に書いておきます。
(省略しすぎました・・・m(_ _)m)
$data_file はiniファイルと同じ形式で書かれてます。
そのセクション($Path_Code)は,
[Menu / AAA--BBB--CCC--DDD]
というようになっており,その中の"--"の個数(#i)を調べ,
最大値(#max)を知りたいのですが。
// ------- start ------------------------------------
// $data_file は閉じている状態
// (無題)ではなく,かつ$data_fileでもない秀丸から起動.
#hwnd = hidemaruhandle (0);
openfile "/h /r " + $data_file;
#res = result;
#hwnd_stealth = hidemaruhandle (0);
if (#res == false) {
message "Error! Can NOT open datafile.";
endmacro;
}
gofiletop;
down;
#max = 0;
setsearch "\\[Menu / [^\\]]*\\]", 16;
findup;
#res = result;
if (#res == yes) goto getline:
while (true) {
finddown;
#res = result;
if (#res == yes) {
getline:
#xt = x;
#yt = y;
gokakko;
#xe = x;
#ye = y;
$Path_Code = gettext (#xt + 1, #yt, #xe - 1, #ye);
#i = 0;
while (true) {
#hit = strstr ($Path_Code, "--");
if (#hit == -1) break;
else #i = #i + 1;
$Path_Code = rightstr ($Path_Code, strlen ($Path_Code) - #hit - 2);
}
if (#i > #max) #max = #i;
} else {
break;
}
}
setactivehidemaru #hwnd;
closehidemaruforced #hwnd_stealth;
message "max = " + str (#max);
// ---------- end -----------------------------
ステルスモードにしたら,更にうまくいかなくなりました。
エラーの内容は,文字列が長すぎるという内容ですが,
$Path_Code (iniファイルのセクション)は,100文字以内です。
8KBを超えるはずはないのですが。
|
|