DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: sy1012
今日帖子: 0
在线用户: 7
导航: 论坛 -> 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 (虚渺)大哥 的解惑
----------------------------------------------
-
作者:
女 zyqhml (zyqhml) ★☆☆☆☆ -
普通会员
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 
  我想问一下,是不是文件行尾都默认有换行和回车符,
  另外如果一个一个字节的读,速度会不会变的很慢
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行78.125毫秒 RSS