首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FreePascal CRT单元防止输出重定向

FreePascal CRT单元防止输出重定向
EN

Stack Overflow用户
提问于 2016-03-18 12:19:37
回答 1查看 319关注 0票数 1

我对FreePascal CRT单元有以下问题:一旦将该单元添加到项目中(例如,添加到一个使用WriteLn()写入"Hello“的简单控制台应用程序),程序的输出将显示在Windows中,但不能重定向。

要更详细地介绍,请使用以下源代码

代码语言:javascript
复制
program project1;

{$mode objfpc}{$H+}

uses
  Classes;

begin
  WriteLn('TestOutput');
end.      

将"TestOutput“打印到windows命令行,并在Windows中运行bash。命令

代码语言:javascript
复制
project1.exe > test.txt

使用内容test.txt创建一个文件TestOutput

一旦将CRT单元添加到项目中(即uses Classes, CRT;),字符串仍将打印到控制台,但不能将重定向到文件或在控制台上下文中使用(文件和变量将为空)。

有人有解决这个问题的办法吗?

这可能会更糟,但是对于可用性来说,拥有HighVideo()的选项和设置光标的位置将是很棒的。

诚挚的问候

亚历克斯

EN

回答 1

Stack Overflow用户

发布于 2016-03-19 17:30:06

显而易见的解决方案是不导入Crt,因为Crt的全部点不是线性文本输出(光标定位)。

传统上,可以通过使用

代码语言:javascript
复制
assign(output,'');
rewrite(output);

您可以尝试将该代码链接到某个命令行参数,以使输出适合管道。但是,为了使它看起来健康,最好也使用不同的(非颜色,非光标定位)输出代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36084228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档