一个文件操作的疑问,关于readLn()
假设E盘有一文件1.txt,内容为:
mmmcccc
明小子
ssssssssssss
ffffffffff
现用delphi方法读取内容:
var
fp:textfile;
s:string;
begin
AssignFile(fp,'e:\1.txt');
Reset(fp);
While not EOF(fp) do //判断是否到末尾
Begin
ReadLn(fp,s);
memo1.text:=s;
End;
CloseFile(fp);
end;
可运行结果为什么是:“ffffffffff“ 而不是
“mmmcccc
明小子
ssssssssssss
ffffffffff
” 为什么呢?
再问:read()与readLn()有什么不同呢?
[解决办法]
memo1.text:=s; 改成 memo1.lines.add(s);
[解决办法]
read 一次读取一个字符
readLn 一次读取一行
[解决办法]
memo1.text:=s;
你的这个语句的原因,你的循环一直在重新赋值而已,不是追加行。
当s='mmmcccc'
你的memo1='mmmcccc'
当最后一句s='ffffffffff'
你的memo1就是 ffffffffff 了。
用一楼的方法改一下就可以了。
memo1.text:=s; 改成 memo1.lines.add(s);
前面的是改写,结果是循环最后一个值,后面的才是追加、插入。
[解决办法]
同意#1,read读但不换行,readln读并自动换行。问题不在这,在于memo.add