如何解除AssignCrt(输出)?

时间:2012-06-11 16:58:14

标签: delphi pascal crt turbo-pascal

在TurboPascal程序中,我利用DOS 处理输出并使用Tab 控制字符在输出中形成列:

const Tab = #09;
...
Writeln(X, Tab, F(X));

但是,当我尝试通过pause调用并使用ReadKey模块添加类似Crt的功能时,已处理的输出已损坏,并且说明的语句上面开始编写通用Tab字形,而不是在制表位上形成列。

正如我所知,这种现象的来源是AssignCrt(Output)调用模块初始化,重新定义了Writeln如何工作 - 它不再使用DOS输出,而是视频BIOS或直接视频内存访问(取决于DirectVideo值)而不是。

我如何反向 AssignCrt做什么?据我所知,文档中Crt模块没有提供恢复正常输出的方法。

1 个答案:

答案 0 :(得分:9)

Crt文本文件驱动程序不支持tab中的turbo-pascal字符。 要恢复标准dos驱动程序,请执行以下操作:

  

分配(输出,'&#39); //恢复标准dos输出

您可以稍后通过以下方式恢复Crt驱动程序:

  

AssignCrt(输出);