如何取消分配Crt(输出)



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

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

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

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

如何撤消AssignCrt所做的一切?据我从文档中所知,Crt模块不提供恢复正常输出的方法。

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

分配(输出,''); 恢复标准 dos 输出

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

分配Crt(输出);

相关内容

  • 没有找到相关文章

最新更新