首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

一个资料操作的疑问,关于readLn()

2013-01-07 
一个文件操作的疑问,关于readLn()假设E盘有一文件1.txt,内容为:mmmcccc明小子ssssssssssssffffffffff现用d

一个文件操作的疑问,关于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

热点排行