0

レガシー TP5 プログラムを持っています。TP7を使用してコンパイルおよび実行できます。write / writeln ステートメントの一部をキャプチャしてログに記録したいと思います。write と writeln に対してグローバルな検索と置換を行うことができるので、そのようなコードの変更は気にしません。フォーマットされた出力 write(r:4:2) を使用するので、それを保持したいと思います。

ファイルに書き込み、次に各行を読み込んで再度書き込む以外に write/writeln をキャプチャする方法を知りません :~( しかし、それはストリームへの書き込みに非常に似ていることに気づきました (Tp5. 5) 次に、コピーを複数の出力にストリーミングします。

誰もこれを以前にやったことがありますか?出来ますか?別の方法はありますか?

4

1 に答える 1

0

Afaik それは可能であり、TP の後継である FPC と Delphi で一般的に行われています。唯一の問題は、TEXTREC が TP によってエクスポートされないことです。そのため、ソースからどこかにコピーする必要があります。

textrec には、I/O を処理するために独自の関数に設定できる一連のプロシージャ変数 (C の関数ポインターなど) があります。これらの変数の設定は、Assign() が行うことです。

ただし、問題は、状態 (ストリームへのポインターなど) を格納する余地を見つけることです。IIRC の TP textrec は、Delphi のものよりもタイトです。

とにかく、Peter below によるユニット StreamIO を検索してください。これは、採用する必要がある FPC/Delphi ユニットですが、少なくとも原理を示しています。とにかく、単に新しいものに移行する方がよいでしょう。SWAG にも相当する TP があるかもしれません。

于 2014-06-17T07:25:07.983 に答える