>EOFに達したら
>実行を中断できると嬉しいです。
PPAマクロで一応可能ですけど面倒ですな。
----------
// 実行には PPA.DLL が必須です。sakura.exe と同じフォルダに PPA.DLL を入れておいてください。
// マクロファイルの拡張子は .PPA でなくてはなりません。
// TAB=4
// ファイル終端に達した場合に処理を終了するサンプル
// マクロ実行開始時にカーソルがある行から、行末の1文字を削除していく。
// 始めに実行する回数を入力するダイアログを出し、そこで指定された行数だけ削除処理をする。
// ただし、ファイル終端に到達したら、即、マクロの処理を中断する。
var
cnt,max:Integer; // 整数数値型変数 cnt と max を用意する
// csry,eol:Integer; // 整数数値型変数 csry と eol を用意する
begin
max := StrToInt( InputBox('マクロ実行','マクロを実行する回数を入力して下さい。','') );
for cnt := 1 to max do begin // {
// // ファイルの行数情報の取得方法のサンプル
// eol := S_GetLineCount(0); // ← ファイルの行数(改行単位の行数)を取得する方法
// csry := StrToInt( S_ExpandParameter('$y') ); // ← カーソルがある行番号(改行単位の行番号)を取得する方法
// MessageBox( '現在の行番号'+IntToStr(csry) + ' / 全行数'+IntToStr(eol) , IntToStr(cnt)+'回目の実行です('+IntToStr(max)+'回実行予定)' , 0 ); // for DEBUG
// 実際の「ファイル終端に到達したら中断する処理」の記述は↓コレ
if ( StrToInt(S_ExpandParameter('$y')) > S_GetLineCount(0) ) then begin
MessageBox( 'ファイル末尾に到達したためマクロを終了します。' , 'マクロ終了' , 0 );
Exit;
end;
// 実際におこなう処理内容
S_GoLineEnd(0); // 行末に移動(折り返し単位)
S_DeleteBack(0); // カーソル前を削除
S_Down(0); // カーソル下移動
end; // }
end;
----------
>ちなみにこれもMifesがこういう仕様なのでっていうのが多分にあるのですが・・・
なつかしい。