2017-04-05 40 views
-1

我想从一行文件中读取长度超过255个字符的行。我不允许通过char来读取它,并且我被粘贴到免费pascal编译器的标准设置。 我该怎么做才能做到这一点?它甚至有可能吗?我阅读了关于使用blockread的一些提示,但我无法找到足够的信息来了解它是如何完成的。ReadLn从文件> 255字符在pascal

虽然只要满足我的限制条件,我仍然乐意提供任何建议。

非常感谢你提前 欢呼 -gladston3

+0

如果您不被允许做某事,说明中可能有一些内容指出练习的目标是什么。 blockread是可能的,这意味着读取文件作为原始二进制数据,并手动解释它。 –

回答

2

我不太看的问题。这适用(在Windows 7拉扎勒斯/ 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 2016-02-14,FPC 3.0.0。

刚刚在OS X上试了一下,工作也很好。 而且它在Ubuntu 16.04中也能正常工作。

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