改用TStringList不就好的多吗?
你的原因是由于string是一种特殊的类型,在使用时动态分配内存。像你这样string没有被初始化就使用,当然要出错误。解决方法是:
1、将t重新声明:t:array [1..100] of string[255];
2、在t使用前,为t申请内存
 for i := 1 to 100 do
   SetLength(t[i], 255);

解决方案 »

  1.   

    string是delphi自维护的一个类型。
    在写的时候string里的自维护指针已经分配了内存,并已经有了内容,所以写没有问题。
    而读的时候应该由你来分配内存来容纳数据,应该用PChar类型来分配。劝你试试TStrings:
    var
      s : TStrings;
    begin
      s:=TStringList.Create;
        s.loadfromfile...
        s.savetofile...
      s.free;
      

  2.   

    感谢,还请问,使用阁下的方法写入文件的是文本,使用Integer数组写入文件的是2进制
    文件吗?内容不是文本,看不清楚。
      

  3.   

    我使用String数组读取文件内容时,大约读了10个左右就开始出现错误的字符串了,是什么导致了这种混乱,我的每个String数组元素长固定为20。chechy,能留下你的email吗?我的是[email protected].