什么数据库?(sybase or oracle...)
一般txt的格式为:
2|人们|23|122222
先写一个程序将txt中的,替换为|
然后用load 将其导入。

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
       f:textfile;
       s:string;
       a:array[1..4] of string;
       i:integer;
       q:tadoquery;
    begin
        assignfile(f,'你的文本文件.txt');
        reset(f);
        while not f.eof;
        begin
        readln(f,s);
        for i:=1 to 4 do
        begin
             if i<4 then
             begin
                  a[i]:=copy(s,1,pos(',',s)-1);
                  s:=copy(s,pos(',',s),length(s));
             end
             else
                 a[i]:=s;    end;
        q:=tadoquery.create(self);
        q.connection:=your_ado_connection_ctronl;
        q.sql.text:='insert into tablename (id,name,age,zipcode) values(:m_id,:m_name,:M_age,:m_zipcode)';
        q.parameters[0].value:=a[1];
        q.parameters[1].value:=a[2];
        q.parameters[2].value:=a[3];
        q.parameters[3].value:=a[4];
        q.execsql;
        end;
        fileclose(f);
        q.close;
        q.free;end;
      

  2.   

    unit Unit8;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      Db, DBTables, StdCtrls, ComCtrls;type
      TForm8 = class(TForm)
        RichEdit1: TRichEdit;
        Button1: TButton;
        Table1: TTable;
        procedure Button1Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form8: TForm8;
       const space='|';
    implementation{$R *.DFM}
    Function RegulateStr(aString:String;Sepchar:String):String;
    var
        i,Num:Integer;
        Flag:Boolean;
        MyStr,TempStr:String;
    begin
        Flag:=False;//进行标志,去除多余的分割符
        Num:=Length(aString);//计算aString串的长度
        for i:=1 to Num do
        begin
             TempStr:=Copy(aString,i,1);//取aString串中的一字符
             if TempStr<>sepchar then
             begin
                MyStr:=MyStr+Tempstr;
                Flag:=True;
             end
             else
             if(Flag=True)then
             begin
              Mystr:=Mystr+TempStr;
              Flag:=False;
             end;
        end;
        if MyStr[Length(MyStr)]>=SepChar then
        MyStr:=MyStr+SepChar;
        RegulateStr:=MyStr;
        end;
    Function GetSubStr(var aString:String;SepChar:String):String;
        var
        Mystr:String;
        StrLen:Integer;
        SepCharPos:Integer;
        begin
        StrLen:=Length(aString);
        SepCharPos:=Pos(SepChar,aString);//计算分割符在子串中的位置
        MyStr:=Copy(aString,1,SepCharPos-1);//将分割符前所有字符放到mystr串中
        Delete(aString,1,SepCharPos);//除去分割符和分割符前的子串
        GetSubStr:=MyStr;//返回一个字段
        end;
        Function GetSubStrNum(var aString:String;SepChar:String):Integer;
        var
        i:Integer;
        StrLen:Integer;
        Num:Integer;
        begin
        StrLen:=Length(aString);
        Num:=0;
        for i:=1 to StrLen do
        if Copy(aString,i,1)=SepChar then
        Num:=Num+1;
        GetSubStrNum:=Num;
    end;
    procedure TForm8.FormCreate(Sender: TObject);
    begin
      richedit1.Lines.LoadFromFile('dk.txt');
    end;procedure TForm8.Button1Click(Sender: TObject);
    var
        i,j:Integer;
        MyLine:String;
    begin
      with table1 do
      begin
         Open;
         for i:=0 to richedit1.Lines.Count-1 do
         begin
             append;
             MyLine:=RegulateStr(richedit1.Lines[i],Space);
             for  j:=1 to getsubstrnum(myline,space) do
             begin
                 fields[j-1].asstring:=GetSubStr(MyLine,Space);
             end;
             post;
        end;
        close;
    end;
        showmessage('数据装入成功');
        close;
    end;end.