有什么方法将文本文件中的数据一行一行,从头读到尾?
比如:
mike 2003-3-5
jodn 2003-5-1
king 2003-2-8
mary 2003-10-1
....
我想将它一行一行从头读到尾,读一行将ID和日期存到数据表中

解决方案 »

  1.   

    TStringList.loadfromfile 然后再循环处理
      

  2.   

    TStringList最多可以存入多少数据?
      

  3.   

    那样数据多了会很慢procedure TForm1.Button3Click(Sender: TObject);
    var
        F: TextFile;
        s: String;
    begin
        AssignFile(F,'c:\1.txt');
        Reset(F);
        while not Eof(F) do
        begin
            //add your codes here
        end;
        CloseFile(F);
    end;
      

  4.   

    happy243(HH) 给你的方法就可以处理的。
      

  5.   

    用PASCAL传统的读文件方式Readln吧。
    //下面是DELPHI帮助里自带的例子。
    var   F: TextFile;
      S: string;
    begin
      if OpenDialog1.Execute then            { Display Open dialog box }
      begin
        AssignFile(F, OpenDialog1.FileName); { File selected in dialog }
        Reset(F);
        Readln(F, S);                        { Read first line of file }
        Edit1.Text := S;                     { Put string in a TEdit control }
        CloseFile(F);
      end;
    end;
      

  6.   

    while not Eof(F) do
        begin
            //add your codes here
        end;
        
    用什么代码让它下移一行
      

  7.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
    AFile:TextFile;
    AStr,FindStr :string;
    beginAssignFile(AFile,'c:\data.ini');Reset(AFile);
    while not eof(AFile)  do
    begin
    readln(AFile,AStr);
    showmessage(AStr);
    end;
      

  8.   

    ini文件有专门的函数!
    procedure read_code(filename:string);
    var book:textfile;
        str:string;
    begin
    assignfile(book,filename);
    reset(book);//读状态
    try
    while not eof(book) do begin
       readln(book,str);//读下一行
       str:=trim(str);
                            end;//while  
    finally closefile(book);end;
    end;
      

  9.   

    外加:(不适合高速运算)
    (拆分字符,才分符号,类型)
    e.g: str:=mike 2003-3-5
    Gshow_title(str,' ',1) 返回  2003-3-5      
    Gshow_title(str,' ',2) 返回  mike
    function Gshow_title(str:Ansistring;feng:char;lei:integer):string;
    var i,k:integer;
    begin
    str:=trim(str);
    //feng:=trim(feng);
    case lei of
    1:begin//拆除单项,在后
    k:=0;
    for i:=1 to length(str) do begin
       if str[i] = feng
          then k:=i+1;
                               end;//for
    result:=copy(str,k,length(str));
      end;//1
    2:begin//拆除单项,在前
    k:=0;
    for i:=1 to length(str) do begin
       if str[i] = feng
          then k:=i-1;
                               end;//for
    result:=copy(str,1,k);
      end;//2
    3:begin//拆除单项,在前
    k:=0;
    for i:=1 to length(str) do begin
       if str[i] = feng
          then begin
                k:=i-1;
                break;
               end;
                               end;//for
    result:=copy(str,1,k);
      end;//3
    4:begin//拆除单项,在后
    k:=0;
    for i:=1 to length(str) do begin
       if str[i] = feng
          then begin
                k:=i+1;
                break;
               end;
                               end;//for
    result:=copy(str,k,length(str));
      end;//4
    5:begin//存在
    k:=0;
    for i:=1 to length(str) do begin
       if str[i] = feng
          then begin
                k:=1;
                break;
               end;
                                end;
    if k = 1
      then result:=uppercase('true')
      else result:=uppercase('false');
      end;//5
    6:begin
    k:=0;
    for i:=1 to length(str) do
       if str[i] = feng
          then k:=k+1;
    result:=inttostr(k);
      end;//6
    end;
    end;