searchdown後の行取りこみ失敗No.00549
Kさいとう さん 99/05/09 19:37
 
はじめて投稿いたします。K斎藤です。

わからなくてはまってしまっています。どうかお助けください。m( )m
ファイルの中から特定文字を検索してその行をメッセージとして出力したく、以下の
マクロを作成しました。

$log = "C:\\" + "logfile.txt";
openfile "$log";
gofiletop;
searchdown "abcdefg";
copyline;
beginclipboardread;
$a = getclipboard;
message $a;
endmacro;

マクロ実行の1回目では確かに該当文字が含まれる行がメッセージボックスに出まし
た。
成功!成功!と思ったのはつかのま、もう一回実行しなおすとこれ以降何回実行して
も、
メッセージボックスにはsearchdown "abcdefg";のコマンド自体のストリングが現れ
ます。

?????。フォーラムの過去発言を参照してみましたが、関連のあるものが見つか
りませんでした。
私の実力が足りないためかと思いますが、助言をお願いします。m( )m



[ ]
RE:00549 searchdown後の行取りこみ失敗No.00551
杉浦 まさき さん 99/05/09 23:36
 
K斎藤 さん、はじめまして。
杉浦 まさき と申します。

家(Ver.3.01, WinNT4.0SP4)で実験してみましたが、
何回実行しても再現できませんでした(^^;。

ところで、2回目以降の実行の際前に開いていた logfile.txt は
閉じてから実行しているでしょうか?
排他制御の設定によっては既に開かれているファイルを
openfile した場合に失敗する可能性がありますが…。
#現象だけ見ると、何らかの原因で2回目以降の実行の時に検索対象が
 このマクロファイル自身になっているような動作ですよね???

とりあえず、openfile と searchdown の後に
コマンドが失敗した場合のコードを付け足して
様子を見てみてはどうでしょうか??

例)
openfile $log; // "$log" は間違いです(^^;。引用符は要らないです。
if (result == false) {
message "ログファイルを開けませんでした。";
endmacro;
}
...
searchdown "abcdefg";
if (result == false) {
message "検索に失敗しました。";
endmacro;
}
...


[ ]