|
初めて、投稿します。
テキストファイルをある条件で分割するマクロを作成してますが、
マクロ終了後、分割したファイルが開いてしまいます。
分割したファイルが開かない方法がありましたら、教えてください。
また、エラー発生時にログを出力したいのですが、ファイルが上書きとなりログが追
加されません。追加モードで出力するにはどうしたらいいのでしょうか?
作成中のマクロです。
ご指導のほど、お願いします。
OSは、2000 または XP
秀丸は、v5.18を使用してます。
#Line = -1;
$Base = basename2;
$ext = filetype;
$LogOut = directory + "\\log\\log.txt";
$OutFileName = "";
$OutFile_directory = directory + "\\temp\\";
$OutFile = "";
#SFLG = 0;
#LineStart = 0;
#LineStart2 = 0;
#LineEnd = 0;
#LineCount = 0;
#LineCount2 = 0; $title = "";
#handle = hidemaruhandle( 0 );
question "Data 分割 を開始しますか?";
if( result == no )
{
message "Data 分割 を中止しました";
endmacro;
}
disabledraw;
gofiletop;
loop:
golinetop;
if(linelen2 == 0) goto loopext;
if(gettext(0,y,1,y) >= "A" && gettext(0,y,1,y) <= "Z"){
if(#SFLG == 0){
#LineCount = #LineCount + 1;
$OutFileName = gettext(0,y,8,y);
#SFLG = 1;
clearcliphist;
beginsel;
down;
} else {
#LineCount = #LineCount + 1;
#LineStart2 = #LineCount;
movetolineno 1, #LineStart;
beginsel;
movetolineno 1, #LineEnd + 1;
copy;
openfile "/h" + $OutFile_directory + $OutFileName + $ext;
paste;
saveas $OutFile_directory + $OutFileName + $ext;
setactivehidemaru #handle;
movetolineno 1, #LineStart2;
#LineCount2 = 0;
$OutFileName = gettext(0,y,8,y);
clearcliphist;
beginsel;
down;
}
} else if(gettext(0,y,1,y) >= "0" && gettext(0,y,1,y) <= "9"){
#LineCount = #LineCount + 1;
#LineCount2 = #LineCount2 + 1;
if(#LineCount2 == 1) {
#LineStart = #LineCount;
} else {#LineEnd = #LineCount;
}
down;
}
else if(gettext(0,y,1,y) == "-") {
#LineCount = #LineCount + 1;
down;
}
else {
#LineCount = #LineCount + 1;
#LineCount2 = #LineCount2 + 1;
#LineStart3 = #LineCount;
openfile "/h" + $LogOut;
golineend2;
$title = $OutFileName + " にエラーデータがあります。行 = " + str( #LineCou
nt2 );
insert $title;
insertreturn;
down 1;
saveas $LogOut;
setactivehidemaru #handle;
movetolineno 1, #LineStart3;
down;
}
goto loop;
loopext:
if(#LineCount > 0) {
#LineCount = #LineCount + 1;
movetolineno 1, #LineStart;
beginsel;
movetolineno 1, #LineEnd + 1;
copy;
openfile "/h" + $OutFile_directory + $OutFileName + $ext;
paste;
saveas $OutFile_directory + $OutFileName + $ext;
setactivehidemaru #handle;
}
enabledraw;
message "ファイル分割処理 終了。";
gofiletop;
endmacro;
|
|