将TSearchrec的字符串添加到备注中

翁贝托

我想将所选文件夹中的文件添加到备注框或字符串列表中,并显示结果。在两种方式中,我都可以添加它们,但是无法显示备忘录中文件夹中的文件或ShowMessage-dialog中字符串列表中的文件。

function CountFilesInFolder(AFolder: String; AMask: String): Integer;
var 
  tmp1: TSearchRec;
  ergebnis: Integer;
  memo1: string;
  list : TStringList;
begin
  result := 0;
  if (AFolder <> '') then
  begin
    if AFolder[length(AFolder)] <> '\' then AFolder := AFolder + '\';
    ergebnis := FindFirst(AFolder + AMask, faArchive + faReadOnly + faHidden + faSysFile, tmp1);
      while ergebnis = 0 do
      begin
        Inc(result);
        ergebnis := FindNext(tmp1);
        while ((tmp1.Name = '|*_tif.tif')) and (ergebnis <> 0) do
        ergebnis := FindNext(tmp1);
      end;
       list.Add(tmp1.Name);
       FindClose(tmp1);
  end;
end;

谢谢您的时间,对不起我的英语不好。

杰夫波列尼乌斯

这样的低级功能不应将项目直接添加到备忘录中。而是将TStrings(字符串列表的抽象)传递给函数并填充它:

function CountFilesInFolder(AFolder: String; AMask: String; FileNames: TStrings): Integer;
begin
// do your file enumeration
// for each file call FileNames.Add(FileName);
end;

由于Lines备忘录属性也属于类型,因此TStrings您可以像这样直接使用它:

CountFilesInFolder('D:\', '*.TXT', Memo1.Lines);

如果要将文件名放在字符串列表中,通常的模式如下所示:

FileNames := TStringList.Create;
try
  CountFilesInFolder('D:\', '*.TXT', FileNames);
finally
  FileNames.Free;
end;

重要的一点是,调用方创建并销毁了TStringList传入的消息CountFilesInFolder-这是Delphi中的一项重要原则。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章