Turbo Pascal,Capture Writeln使用流?

时间:2014-05-21 03:16:50

标签: turbo-pascal

我有一个传统的TP5计划。它使用TP7编译并运行正常。我想捕获并记录一些write / writeln语句。我可以对写入和写入进行全局搜索和替换,因此我不介意像这样的代码更改。它确实使用了一些格式化的输出:    写(R:4:2) 所以我想保留它。

除了写入文件之外,我不知道捕获写/写的任何方法,然后读回每一行并再次写入:〜(但它发生在我身上,这就像写入流一样(在Tp5.5中引入),然后将流复制到多个输出。

以前有人这样做过吗?可能吗?还有另一种方式吗?

1 个答案:

答案 0 :(得分:0)

Afaik有可能,通常在TP的继任者FPC和Delphi中完成。唯一的麻烦是TPX不会导出TEXTREC,所以你必须将它从源码复制到某个地方。

textrec有一堆过程变量(比如C中的函数指针),您可以将它们设置为自己的函数来处理I / O.设置这些变量就是Assign()的作用。

问题是找到存储状态的空间(例如,指向流的指针)。 IIRC TP textrec比Delphi更严格。

无论如何,搜索一个单元StreamIO。这是一个你必须采用的FPC / Delphi单元,但至少它证明了这些原理。无论如何,简单地迁移到更新的东西会更好。也许SWAG也有TP等价物。