Pascal结果窗口

时间:2017-11-13 08:53:17

标签: output lazarus freepascal slowdown

我编写了一个程序,它合并了两个包含名称的1D数组。我打印arr1,arr2和arr3的列表。

我正在使用Lazarus Free Pascal v.1.0.14。我想知道是否有人知道如何在类似DOS的窗口中打破结果,因为列表太长,我只能看到返回结果中的最后几个名字。其余的事情太快而无法阅读。

我知道我可以将结果保存到文件中,我也使用延迟命令,但是想知道是否有办法以某种方式破坏结果或减慢它们甚至编辑输出控制台?

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

这不是一个编程问题,因为你的控制台应用程序应该输出值而不会暂停。否则,如果您希望它以自动方式作为另一个管道的一部分运行,那么您的程序将变得毫无用处。

相反,你需要一个工具,你可以在你的程序中包装,以便在你想要的时候分页输出。此类工具称为terminal pagers,Windows附带的基本工具称为more。您执行程序并将输出传递给more程序。像这样:

C:\SomeDir>MyProject.exe <input_args> | more

答案 1 :(得分:2)

您可以通过以下方式更改循环代码:

假设您通过以下循环打印结果:

for i:=0 to 250 do
  WriteLn(ArrUnited[i]);

您可以将其替换为:

for i:=0 to 250 do
  begin
    WriteLn(ArrUnited[i]);
    if (i mod 25) = 24 then //the code will wait for the user pressing Enter every 25 rows
      ReadLn;
  end;

将来请!在您的问题中发布MCVE,否则每个人都必须猜测您的代码是什么。