我们知道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语]