http://expert.csdn.net/Expert/topic/2488/2488512.xml?temp=8.876979E-03下面这个也是:把str1换成memo中的内容就出错。
procedure TForm1.Button3Click(Sender: TObject);
var
  fs:TFileStream;
  str1:String;
begin
  fs:=TFileStream.Create('101.txt',fmCreate);
  try
    str1:='dggggjghgggggggggggggggggggggggggggg#13#10ggggggggggggg10';
    //str1:=memo.Lines.Strings[0];
    fs.Write(str1,20);    str1:=' ,。人';
    //str1:=memo.Lines.Strings[1];
    fs.Write(str1,20);
  finally    fs.Free;
end;
end;procedure TForm1.Button4Click(Sender: TObject);
var
  fs:TFileStream;
  str1:String;
  i:integer;
begin
  fs:=TFileStream.Create('101.txt',fmOpenRead);
  try
    for i:=1 to 2 do
    begin
      fs.read(str1,20);
      memo2.Lines.Add(str1);
    end;
  finally
    fs.Free;
end;
end;

解决方案 »

  1.   

    把你的str1定义为 array[0..100] of char
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      n,i: Integer;
      f:TFileStream;
      c:array[0..10] of char;
    begin
      c:='dd暗暗暗';
      f := TFileStream.Create('000.txt',fmCreate);
      try
        f.Write(c,10);
      finally
        f.Free;
    end;
    end;
    //读文件:
    procedure TForm1.Button2Click(Sender: TObject);
    var
      n:Integer;
      f:TFileStream;
      c:array[0..10] of char;
      str:string;
    begin
        f:=TFileStream.Create('000.txt',fmOpenRead);
        try
          f.Read(c,1000);
       for n:=0 to 1000 do
          str:=str+c[n];
       memo2.Lines.Add(str) ;
       finally
         f.Free;
       end;
     end;
      

  3.   

    要定义为str: string[20];
            或str: array[0..20] of char;
      

  4.   

    To Lxhong1980:
    当接收来自MEMO的数据时就会出错,如:
     
     for i:=1 to length(memo.lines.strings[0]) do
     c[i]:=memo.lines.strings[0][i];
    再读取时就会出错。
      

  5.   

    问题解决了,哈哈。
    用BlueDreaming(蓝色海岸)的方法就解决了
    多谢楼Lxhong1980,BlueDreaming。由于本贴的分不高,因此本人把此贴的分全给BlueDreaming。由于http://expert.csdn.net/Expert/topic/2488/2488512.xmltemp=8.876979E-03
    和本贴的问题差不多,所以本人将在那个贴子中给 Lxhong1980 分,不会有意见吧。