一个文本文件(*.txt),里面内容以|号分割,如:
good|ban|sdasadas
food|fan|sdfsdf
god|bank|dfasfa现在想把每个字段读出,赋给多维数组
还有如何获得当前行数。
我是个初学者。请给位大侠,指点。
最好,能告诉我详细代码。谢谢

解决方案 »

  1.   

    var
      FileList:TStringList;
      i,j,Position:integer;
      ThisLine,ThisElem:String;
      LineArry:array of array of string;
    begin
      FileList:=TStringList.Create;
      FileList.LoadFromFile('f:\a.txt');
      SetLength(lineArry,FileList.Count);//设置数组大小为与文本文件的行数一致
      for i:=1 to FileList.count do
      begin
        ThisLine:=FileList.Strings[i-1];//取得当前行
        While Length(ThisLine)>0 do
        begin
          SetLength(LineArry[i-1],Length(LineArry[i-1])+1);//增加这一行的数组个数
          Position:=Pos('|',Thisline);
          if Position>0 then
          begin
            LineArry[i-1][Length(LineArry[i-1])-1]:=Copy(ThisLine,1,Position-1);//存一个数据到此数组
            ThisLine:=copy(ThisLine,Position+1,Length(Thisline)-Position);
          end
          else
          begin
            Position:=Pos('|',Thisline);
            LineArry[i-1][Length(LineArry[i-1])-1]:=Copy(ThisLine,1,Length(ThisLine));//存一个数据到此数组
            ThisLine:='';
          end;
        end;
      end;
    end;
      

  2.   

    我试验过了,能通过,最后结果:
    linearry[0][0]:=good
    LineArry[0][1]:=ban
    linearry[0][2]:=sdasadas
    LineArry[1][0]:=food
    linearry[1][1]:=fan
    LineArry[1][2]:=sdfsdf
    linearry[2][0]:=god
    LineArry[2][1]:=bank
    LineArry[2][1]:=dfasfa