首页  编辑  

如何读取超过255个字符的一行

Tags: /超级猛料/Stream.File.流、文件和目录/文件操作/   Date Created:

我们知道Readln可以读取一行文件,然而,好像有255个字符的长度限制?

ReadLn可以接受array[0..N] of char的数组作为Buffer,读取得字符被放到这个Buffer,并且在最后添加一个#0字符!真正的限制是:编译器需要在编译的时候确定这个缓冲区的大小!因此导致不能用pchar变量并且动态分配内存的方法解决问题,因此你可以采取下面的方法:

Type

  TLine = Array [0..1024] of Char; {use longest line you may encounter here}

  PLine = ^TLine;

Var

  pBuf: PLine;

...

  New( pBuf );

...

  ReadLn( F, pBuf^ );

然后,你可以用pchar(pBuf)来得到字符串~~~~~~~~~:)

当然,你可以不用指针,而直接用TLine或者其他等价的数组,不过我倾向于在堆中分配任何大于4Byte的东西~~~~~~~~~:)[Lloyd's语]