本办法,将txt文件读到Tlistbox中,一行一行处理~

解决方案 »

  1.   

    这个简单!用TStringList最方便!
      

  2.   

    Var i: Integer;
    begin
      Memo1.Lines.Clear;
      Memo1.Lines.LoadFromFile('jcdata.txt');
      For i:=0 to Memo1.Lines.Count-1 do 
      begin
        if Length(Memo1.Lines[1])>0 then
        begin
          With Table1 do begin
            Append;
            FieldByName('A1').asString:=Copy(Memo1.Lines[1],1,2);
            FieldByName('A2').asString:=Copy(Memo1.Lines[1],4,2);
            FieldByName('A3').asString:=Copy(Memo1.Lines[1],7,2);
            FieldByName('A4').asString:=Copy(Memo1.Lines[1],10,2);
            FieldByName('A5').asString:=Copy(Memo1.Lines[1],13,2);
            FieldByName('A6').asString:=Copy(Memo1.Lines[1],16,2);
          end;
        end;    
      end;
      table1.post;
      Memo1.Lines.Clear;
      Memo1.Lines.SaveToFile('jcdata.txt'); 
    end;
      

  3.   

    var
      F1: TextFile;
      str: string;
    begin
      AssignFile(F1, 'c:\b.txt');
      Reset(F1);
      while not eof(f1) do
      begin
        Readln(F1, Str);
        try
          query1.Edit;
          query1.fieldbyname('A1').asstring := copy(str, 0, 2);
          query1.fieldbyname('A2').asstring := copy(str, 3, 3);
          query1.fieldbyname('A3').asstring := copy(str, 6, 3);
          query1.fieldbyname('A4').asstring := copy(str, 9, 3);
          query1.fieldbyname('A5').asstring := copy(str, 12, 3);
          query1.fieldbyname('A6').asstring := copy(str, 15, 3);
          query1.Post;
        except
          MessageDlg('保存数据出错!', mtError, [mbOk], 0);
          CloseFile(F1);
          query1.Close;
          exit;
        end;
      end;
       MessageDlg('保存数据成功!', mtInformation, [mbOk], 0);
       query1.Close;
       CloseFile(F1);
       //清空
      AssignFile(F1, 'c:\b.txt');
      ReWrite(F1);
      CloseFile(F1);