比如我写了两个自定义结构
TRec1 = Record
 List :Tlist;
end;TRec2 =Record
 Int : Integer;
 Str : String;
end;var
rec  TRec2rec.int := 12; rec.str := 'adsad'
现在我想用结构1(TRec1)中的List的items[0],存储rec,然后再用流的方法,写入一个文件,我对流的方法不熟,请问怎么写入,和读出来?谢谢,分不够再加!

解决方案 »

  1.   

    TRec1 = Record
     List :Tlist;
    end;TRec2 =Record
     Int : Integer;
     Str : String;
    end;var
      rec: TRec2
      fstream: TFileStream;
      c: Char;
    begin
      rec.int := 12; rec.str := 'adsad'...//写入文件  fstream := TFileStream.Create('c:\test.dat', fmCreate);
      fstream.Write(rec.int, sizeof(integer));
      fstream.Write(rec.Str[1], Length(rec.Str) + 1);
      fstream.Free();...//读取文件  fstream := TFileStream.Create('c:\test.dat', fmOpenRead);
      fstream.Read(rec.int, sizeof(integer));
      rec.Str := '';
      repeat
        fstream.Read(c, 1);
        if c <> #0 then
          rec.Str := rec.Str + c;
      until c = #0;
      fstream.Free();...end;
      

  2.   

    如果全部存成字符串,倒是很方便.
    list := TStringList.Create;
    list.add( IntToStr(12));
    list.add( 'adsad');
    list.add(.....
    ..
    list.saveToFile('文件名');下次读取:
    list := TStringList.Create;
    list.LoadFromFile('文件名');
    for i:=0 to list.count -1  do
       string1 := list[i]; //可以用些变量读取
    //可以判断string1的类型,如果需要可以转换成相应的类型.