比如我选择一个目录,可以读取到该目录下的所以txt文件的个数,文件名等信息

解决方案 »

  1.   

    用FindFirst
     FindNext
     FindClose
    这三个函数就可以了,具体的用法请参考DELPHI 的帮助.
      

  2.   

    Procedure GetAllFileName(const fpath: String;  filelist: TstringList);
    var
       fs: TsearchRec;
    begin
      if findfirst(fpath+'\*.txt',faAnyFile,fs)<>0 then
         exit;
      repeat
        if (fs.name<>'.') and (fs.name<>'..') then
           if((fs.Attr and faDirectory)=faDirectory) then
              GetAllFileName(fpath+'\'+fs.Name,filelist)
          else
            filelist.Add(fpath+'\'+fs.name);  until   findnext(fs)<>0 ;
      sysutils.findclose(fs);
    end;
      

  3.   

    我的问题是这样的,软件中所有的dfm文件的可编辑控件都设置了iemname属性值,我现在要把所有dfm的iemname属性删除。
    我的思路是,选择一个目录,得到该目录下所有的dfm文件。。把dfm当作文本文件处理删除该属性
    现在遇到一个问题,dfm文件在未选择 (窗体文件右键菜单text dfm选项)时,以二进制文件存储的,无法进行处理。。偶现在不知该怎么处理把该二进制文件再保存为文本文件格式。。
    (在delphi中打开dfm文件,选中text dfm ,再保存,就可以。但dfm太多。偶不可能一个去设置。。)
    不知大侠们有什么好的思路和解决办法急用
    分不成问题、。。
      

  4.   

    procedure ObjectBinaryToText(Input, Output: TStream);
      

  5.   

    sorry!!!
    var s1,s2:TmemoryStream;
        ff:TStreamOriginalFormat;
    begin
         s1:=Tmemorystream.create;
         s2:=Tmemorystream.create;
         s1.LoadFromFile('c:\temp\ttt.dfm');
         s1.Position:=0;
         ff:=sofBinary;
         ObjectResourceToText(s1,s2);
         s2.SaveToFile('c:\temp\ttt.dfm');
    end;
      

  6.   

    在转化时, 在执行ObjectResourceToText(s1,s2);语句时
    有的会报错误提示 :invalid stream format!
    在之前我已根据TestStreamFormat(s1)=sofbinary 判断过是不是二进制存储了。。
      

  7.   

    呵呵,
    dfm文件可以直接当文本文件来操作
    你可以直接调入到Memo里面
    memo.lines.loadfromfile('d:\test\aaa.dfm');
    然后删除ime
    memo.lines.savetofile('d:\test\aaa.dfm');