假设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()有什么不同呢?

解决方案 »

  1.   

    memo1.text:=s; 改成 memo1.lines.add(s);
      

  2.   

    read 一次读取一个字符
    readLn 一次读取一行
      

  3.   

     memo1.text:=s; 
    你的这个语句的原因,你的循环一直在重新赋值而已,不是追加行。
    当s='mmmcccc'
    你的memo1='mmmcccc'
    当最后一句s='ffffffffff'
    你的memo1就是  ffffffffff  了。
    用一楼的方法改一下就可以了。
    memo1.text:=s; 改成 memo1.lines.add(s); 
    前面的是改写,结果是循环最后一个值,后面的才是追加、插入。
      

  4.   

    同意#1,read读但不换行,readln读并自动换行。问题不在这,在于memo.add