【问题标题】:Turbo Pascal, Capture Writeln using stream?Turbo Pascal,使用流捕获 Writeln?
【发布时间】:2014-05-21 03:16:50
【问题描述】:

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

除了写入文件,然后读取每一行并再次写入之外,我不知道任何其他方法来捕获 write/writeln :~( 但我突然想到,这非常像写入流(引入在 Tp5.5 中),然后将副本流式传输到多个输出。

以前有人做过吗?可能吗?还有其他方法吗?

【问题讨论】:

    标签: turbo-pascal


    【解决方案1】:

    Afaik 这是可能的,并且通常在 TP 的继任者 FPC 和 Delphi 中完成。唯一的问题是 TEXTREC 不是由 TP 导出的,所以你必须将它从源复制到某个地方。

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

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

    无论如何,请搜索 Peter 下面的单元 StreamIO。这是您必须采用的 FPC/Delphi 单元,但至少它展示了原理。无论如何,最好简单地迁移到更新的东西。也许 SWAG 也有 TP 等价物。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      相关资源
      最近更新 更多