aaa.txt文件的内容:
50,90
20,85
30,98
bbb.txt文件的内容:
30,96
25,97
45,93
aaa.txt和bbb.txt存放于同一个目录下。
在delphi中实现的程序要求:
窗体左侧为一个listbox显示文件名称(一行显示一个文件名,如aaa,且去掉.txt后缀)
窗体右侧为六个文本框,假如在listbox中选择的是aaa,则六个文本框分别显示为
30  96
25  97
45  93

解决方案 »

  1.   

    楼主还是用个opendialog和memo实现比较方便。
      

  2.   

    大体是这样:procedure FindFiles(sPath:string;var FileBuf:TStringList);//找文件的过程
    var
      sr:TSearchRec;
    begin
      FileBuf.Clear;
      if FindFirst(sPath,faAnyFile,sr)=0 then
      begin
        if not((sr.Attr and faDirectory)>0) then
          FileBuf.Add(sr.Name);
        while FindNext(sr)=0 do
        begin
          if not((sr.Attr and faDirectory)>0) then
            FileBuf.Add(sr.Name);
        end;
      end;
      FindClose(sr);
    end;
    然后在ListBox的Click时间写
    Var
      F:TextFile;
      S:String;
    begin
      Assignfile(F,'文件的路径');
      reset(F);
      while not Eof(F) do
      begin
        ReadLn(F,S);
        加到Edit中    
      end; 
      CloseFile(F);
    end;
      

  3.   

    我给你写得一个...能实现你的要求(调试通过)
    注:算法不好,方法比较笨.你可以自己改改了......^_^//////////////////
    unit main;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ComCtrls;type
      TForm1 = class(TForm)
        Edit1: TEdit;
        ListBox1: TListBox;
        Edit2: TEdit;
        Edit3: TEdit;
        Edit4: TEdit;
        Edit5: TEdit;
        Edit6: TEdit;
        Button1: TButton;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure ListBox1DblClick(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;type
      Tstr=record
        str1:string;
        str2:string;
      end;var
      Form1: TForm1;
      line: integer = 0;
      sss: Array [1..10] of string;      //存放绝对文件路径....
      edit: Array[1..10] of TEdit;       //控件数组
    function findstr(s :string ):Tstr;   //分析每行字串,分离 "," 前后的字串...
    implementation{$R *.dfm}function findstr( s :string ):Tstr;
    var ss:Tstr;
    begin
       ss.str1:=copy(s,1,pos(',',s)-1);                     //","号前的字串
       ss.str2:=copy(s,pos(',',s)+1,length(s)-pos(',',s));  //","后的字串
       result:=ss;
    end;//数组化Edit控件
    procedure TForm1.FormCreate(Sender: TObject);
    begin
       edit[1]:=edit1;
       edit[2]:=edit2;
       edit[3]:=edit3;
       edit[4]:=edit4;
       edit[5]:=edit5;
       edit[6]:=edit6;
    end;//将"C:\top\"下的所有*.txt文件导到listbox项目里.
    procedure TForm1.Button1Click(Sender: TObject);
    var
     SearchRec:tSearchRec;
     FindResult:integer;
     i:integer;
    begin
    i:=1;
    FindResult := FindFirst('C:\top\'+ '*.txt',FaAnyFile,SearchRec);
    while findresult=0 do
    begin
       listbox1.items.Add(ChangeFileExt(SearchRec.Name,''));
       sss[i]:='C:\top\'+SearchRec.Name;              //保存真实文件路径(绝对..)
       i:=i+1;
       FindResult :=findnext(Searchrec);
    end;
    FindClose(Searchrec);
    end;procedure TForm1.ListBox1DblClick(Sender: TObject);
    var myfile  :TextFile;
          n     :integer;   
        strlist :Array[0..100] of string ;             //存放文件中每行的内容
    begin
    if listbox1.Selected[listbox1.ItemIndex]=true then
            begin
            Assignfile(myfile,sss[listbox1.ItemIndex+1]);
            reset(myfile);
            n:=1;
            while not Eof(myfile) do
              begin
                line:=line+1;
                ReadLn(myfile,strlist[line]);
                edit[n].Text:=findstr(strlist[line]).str1;   //","号前
                edit[n+1].Text:=findstr(strlist[line]).str2; //","号后
                n:=n+2;
              end;
            CloseFile(myfile);
            end
            else
            Exit;
    end;
    end.
      

  4.   

    文件名的显示还是用shell,篇历太慢了
    Borland\Delphi5\Demos\Virtual Listview
    你看看这个例子吧,用他的方法显示文件列表