导航:
论坛 -> DELPHI技术
斑竹:liumazi,sephil
作者:
zyxg (星光)
★☆☆☆☆
-
普通会员
2004/1/9 15:57:44
标题:
用Read()函数能一行一行的读数据吗?
浏览:1376
加入我的收藏
楼主:
因为我的字符串可能大于100个字节(好像不能用readln()),且每行的字符数是不等的,请问各位大虾,怎么能一行一行的把数据取出来且不能被截断,先谢谢了!!(着急啊)
----------------------------------------------
-
作者:
cjrb (Thinking In 魂)
★☆☆☆☆
-
盒子活跃会员
2004/1/9 16:38:26
1楼:
[转] 如何读取超过255个字符的一行 我们知道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语]
----------------------------------------------
充电..........
作者:
zyxg (星光)
★☆☆☆☆
-
普通会员
2004/1/9 16:48:10
2楼:
佩服佩服!!! 谢谢 cjrb (虚渺)大哥 的解惑
----------------------------------------------
-
作者:
2004/1/9 20:00:44
3楼:
可以把文件变量f的类型设为file,用reset(f,1)来打开文件,这样文件按1字节来计数,read(f,s[1],1)可以读1字节,可以判断读出的是否是换行和回车符,如果是,则读出了一行.具体代码就不写了.有兴趣可以联系:delphizone@tom.com
----------------------------------------------
hello,i am ever.
作者:
zyxg (星光)
★☆☆☆☆
-
普通会员
2004/1/10 9:25:07
4楼:
To zyqhml 我想问一下,是不是文件行尾都默认有换行和回车符, 另外如果一个一个字节的读,速度会不会变的很慢
----------------------------------------------
-