如何把user.txt文件读出来,要将它转入数据库user.db中,其格是如下:赵莫天,33,男,工程师
李慧,43,女,高级工程师
......
//如何把user.txt文件读出来,其中如何区分“逗号”(每一项以逗号隔开)。
那位大虾能够详细点说一下,最好有源代码,小弟很菜欧!!!!

解决方案 »

  1.   

    用f:=assignfile(...);
      reset(f);
      readln(f,buf);
    进行读取文件,
    然后用pos进行定位字符串分割取值,
    最后append()到数据库表中去.
    are you OK?
      

  2.   

    一定要用程序实现吗?Access支持直接从文本文件导入的啊。
      

  3.   

    这里是空格,也可以是,、;、#等符号。unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, DB, DBTables, Grids, DBGrids, Buttons;
    Const
      Space=' ';
    type
      TForm1 = class(TForm)
        m: TMemo;
        Button1: TButton;
        DBGrid1: TDBGrid;
        Table1: TTable;
        DataSource1: TDataSource;
        BitBtn1: TBitBtn;
        procedure Button1Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure BitBtn1Click(Sender: TObject);
      private
          // Function Regulate(aString,Sepchar:string):string;//去掉多余的分割符,规范字符串
        // Function GetSubStr(varsString:string;SepChar:String):String;//得到字符串中一个子串,因要改变参数aString的值,所以将它用var定义。
        // Function GetSubStrNum(aString,SepChar:String):Integer;//计算一个字符串要被分割成几个字段。
       
          { Private declarations }
      public
        function GetExePath: String;    { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}function TForm1.GetExePath:String;
    begin
      Result:=ExtractFilePath(ParamStr(0));
      if Result[Length(Result)]<>'\' then
        Result:=Result+'\';
    end;
    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(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;
             result:=Num;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i,j:Integer;
      MyLine:String;
     num:integer;
    begin
    num:=4;
      with Table1 do
           begin
             Open;
             edit;
             //showmessage('0');
             for i:=0 to m.Lines.Count-1 do
                 begin               MyLine:=RegulateStr(m.Lines[i],Space);
                   Append;
                   showmessage('0');
                   for j:=1 to Num  do
                       begin                      open;
                          edit;
                          fields[j-1].asString:=GetSubStr(MyLine,Space);                      post;
                          showmessage('2');                   end;
                 end;
              open;
           end;
    end;
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Table1.DatabaseName:=Form1.GetExePath+'mdb';
      Table1.TableName:='a.DB';
     //Query1.DatabaseName:=myForm.GetExePath+'mdb';
      //AllRec;
      table1.Open;
      m.Lines.LoadFromFile('a.txt');
    end;procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
      table1.Delete;
    end;end.