比如我有一个ABC.TXT文件,里面有以下数据:
TH19HIVQ901210,1,2008-10-13 00:00:00
TH19HIVQ901211,1,2008-10-13 00:00:00
TH19HIVQ901212,1,2008-10-13 00:00:00
TH19HIVQ901213,1,2008-10-13 00:00:00我只想把
TH19HIVQ901210
TH19HIVQ901211
TH19HIVQ901212
TH19HIVQ901213
提出来,其它可以不要,这样的话怎么做呢?

解决方案 »

  1.   


    var
      S,Filename:string;
      F:TextFile;
      j:Integer;
    begin
      Filename:='123.txt';
      if not FileExists(Filename) then exit;
      AssignFile(f,Filename);
      Reset(f);
      while not Eof(f) do
      begin
        Readln(f,s);
        j:=pos(s,',');
        if j>0 then s:=Copy(s,1,j-1);
      end;
      CloseFile(f);
    end;
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
    ss:tstringlist;
    i,d:integer;
    begin
    ss:=tstringlist.Create;
    ss.LoadFromFile('c:\11.txt');
    for i:=0 to ss.Count-1 do
       begin
       d:=pos(',',ss[i]);
       memo1.Lines.Add(copy(ss[i],1,d-1));
       end;
    ss.Free;
    end;
      

  3.   


    var     sl      :TStringlist;
            l       :integer;
    begin
     sl :=TStringList.Create;//存储载入的文本文件
     sl.LoadFromFile('c:\ABC.txt');
     for l:=0 to sl.Count-1 do //逐行处理
     begin
      
     {你自己的处理. sl.Strings[l]就是读取的每一行数据.在其基础上 你可以截取前几个你需要的数据.}
     end;
    end;
      

  4.   

    俺也写一个,与大家的方法有一点点不同:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i: integer;
      strs,strd: TStringList;
    begin
      strs := TStringList.Create;
      strd := TStringList.Create;
      try
        strs.LoadFromFile('d:\aaa.txt');
        for i:=0 to strs.Count-1 do
        begin
          strd.Clear;
          strd.Delimiter := ',';
          strd.DelimitedText := strs[i];
          Memo1.Lines.Add(strd[0]);
        end;
      finally
        strs.Free;
        strd.Free;
      end;
    end;结果:
    TH19HIVQ901210
    TH19HIVQ901211
    TH19HIVQ901212
    TH19HIVQ901213
      

  5.   

    答案被人抢站了. 上面的得加上sl.free
      

  6.   

    假设ABC.TXT放在了F:\Test文件夹
    你可以这样
    var
      qry: TADOQuery;
    begin
      qry := TADOQuery.Create(nil);
      try
        qry.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Test;Extended Properties=Text;Persist Security Info=False';
        qry.Open;
        qry.SQL.Text := 'select * from [ABC#TXT]';
        qry.Open;
        while not qry.Eof do
        begin
          Memo1.Lines.Add(qry.Fields[0].AsString);
          qry.Next;
        end;
      finally
        qry.Free;
      end;
    end;
      

  7.   

    我是以二楼来弄的,代码不错,但POS函数里面的东西写反了,总的来说我很满意,谢谢了。
    大家给的答案都差不多,有一种还很创意,谢谢各位了,结贴。