>>ログをテキストファイルにまとめて保存
>>表示した文字を全文まとめてテキストファイルに保存させたいのですがどうすればいいのでしょうか?
私の文章理解力が足りないせいだとは思いますが、ケンゴさんが一体何を保存したいのかが分かりませんでした。
タイトル通りならlogmes命令で記録されるログですし、書き込み通りならmes命令やらprint命令やらes_mes命令やらのmes類命令で表示された物全ての記録を保存したいという風に聞こえます。
ですので、今回はタイトルの側の意味、つまりlogmes命令で記録したデータの全てを保存したいと言う意味に解釈させていただきます。もし、ケンゴさんが望むのが、mes類命令全ての記録だったと言う事でしたらあらかじめお詫びいたします。御無礼をば。
で、本題ですが、logmes命令をマクロを利用して改造してしまえば、問題は解決するかと思います。また、mes類命令で用いたデータを保存したい場合も、変換マクロを複数用意するだけの事なので原則的に違いは無いと思います。以下は一例
#module newlog
#undef logmes
#define global logmes(%1) function_logmes str(%1)
#define SAVE_NAME strf("ログの%%04dページ目.txt",ページ数)
//事前準備、これをしないと上手く動かない
#deffunc prepare_newlog str dir
ログ = ""
ページ数 = 0
ディレクトリ = dir
return
//改造logmes命令の正体
#deffunc function_logmes str log
logmes@hsp log
ログ = ログ+"\n"+log
if strlen(ログ) > 2000 : save_log
return
//ログを保存する命令
#deffunc save_log local pre_dir
if ディレクトリ = 0 : return 1
pre_dir = dir_cur
chdir ディレクトリ
bsave SAVE_NAME, ログ
ログ = ""
ページ数+
chdir pre_dir
return 0
//終了時にログを保存する設定にする命令
#deffunc exit_save_log
onexit *終了時
return
//exit_save_log命令発令後は終了時にこのフラグに移動する
*終了時
save_log
end
#global
prepare_newlog dir_cur
exit_save_log
logmes "GEARF"
logmes "FEARF"