来自文件的ReadLn> pascal

时间:2017-04-05 18:13:43

标签: string pascal freepascal

我试图逐行读取一个长度超过255个字符的行。我不被允许通过char读取它,我被粘贴到免费pascal编译器的标准设置。 我能做些什么来实现这一目标?它甚至可能吗?我读了一些关于使用blockread的提示,但是我无法找到足够的信息来了解它是如何完成的。

我愿意接受任何建议,只要他们符合我的限制。

非常感谢您提前 干杯 -gladston3

1 个答案:

答案 0 :(得分:2)

我不太明白这个问题。这有效(Windows 7上的Lazarus / FreePascal):

program Project1;

const
  FileName = 'test.txt';

procedure WriteLongLines;
var
  S: string;
  T: Text;
begin
  S := StringOfChar('#', 350);
  Assign(T, FileName);
  Rewrite(T);
  Writeln(T, S);
  Writeln(T, S);
  Writeln(T, S);
  Close(T);
end;

var
  T: Text;
  S: string;

begin
  WriteLongLines;
  Assign(T, FileName);
  Reset(T);
  while not EOF(T) do
  begin
    Readln(T, S);
    Writeln(Length(S), ' ', S);
  end;
  Readln;
end.

行的长度为350个字符(即> 255)。可以毫无问题地阅读它们。我没有改变任何标准设置。

Lazarus v1.6 from 2016-02-14,FPC 3.0.0。

在OS X上试过它。工作正常。 它在Ubuntu 16.04中也可以正常工作。

嗯...不要告诉我你使用短串(最多255个字符)?