readln 读文本文件的问题(100分)

  • 主题发起人 foxapple
  • 开始时间
F

foxapple

Unregistered / Unconfirmed
GUEST, unregistred user!
用readln读一文本文件,有时可以读一行,但有时却将文件整个读入,readln是否有bug?
 
不可能!
我用的好好的呀?
 
是读同一个文件吗?
 
文本文件没换行?
 
不会吧,把你程序段代码与部分文本文件铁出来看看!
 
有可能文本没有换行, 就一行,
如果不是这样,就不知道了,
把代码贴出来吧。
 
不是同一文件!
 
readln在遇到硬回车符时才停下来。一般不会出错,但如果
用ultraedit编辑的文档有时就会出错。
 
应该是文本文件的问题,换行符没有或不是Delphi合法换行符
 
我想也是可能没有换行符
 
肯定是文件的原因
 
dos/windows 的文本文件的换行是 0d 0a 2个字符
unix 的文本文件的换行是 0a 1个字符

(0d:回车字符、0a:换行字符)

我试了,只有 0a 一个字符的换行,readln不认为是换行,0d0a 才认为是换行
 
这个问题我经常碰到,我的一个程序跟银行交换数据,用文本格式,每次送过去正常,返
回来我就读不进来,正如PiPi所说,没有0D,只要用word等编辑器打开,另存一下就好
了.
我开始问他是否读同一文件,就是怀疑文件有问题.
 
原因查明,全是Ultraedit惹得祸,readln以$0d$0a为行结束符,而

其中一文本文件以$0a为行结束符.但用ultraedit看此文件时,它却

自动在该行的末尾加上$0d,只有用其他编辑工具才发现问题.
 
顶部