String 从文件读取ln>;帕斯卡255个字符

String 从文件读取ln>;帕斯卡255个字符,string,pascal,freepascal,String,Pascal,Freepascal,我正在尝试逐行从带有pascal的文件中读取长度超过255个字符的行。我不允许逐字符阅读它,我被自由pascal编译器的标准设置粘住了。 我能做些什么来实现这一目标?有可能吗?我读了一些关于使用blockread的提示,但是我没有找到足够的信息来了解它是如何完成的 我愿意接受任何建议,只要它们符合我的限制 事先非常感谢 干杯 -格拉斯顿3我不太明白问题所在。这是可行的(Windows 7上的Lazarus/FreePascal): 行的长度为350个字符(即>255个字符)。他们可以毫无问题地阅

我正在尝试逐行从带有pascal的文件中读取长度超过255个字符的行。我不允许逐字符阅读它,我被自由pascal编译器的标准设置粘住了。 我能做些什么来实现这一目标?有可能吗?我读了一些关于使用blockread的提示,但是我没有找到足够的信息来了解它是如何完成的

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

事先非常感谢 干杯
-格拉斯顿3

我不太明白问题所在。这是可行的(Windows 7上的Lazarus/FreePascal):

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

Lazarus v1.6自2016年2月14日起,FPC 3.0.0

刚刚在OSX上试用过,也很好用。 它在Ubuntu 16.04中也运行良好


嗯。。。不要告诉我您使用的是短字符串(最多255个字符)?

如果不允许您执行某些操作,说明中可能有一些内容指出了练习的目标。区块读取是可能的,这意味着将文件作为原始二进制数据读取,并手动解释它。
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.