掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
複数条件のファイル検索をするには? (ID:25629)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
まるごと貼っちゃいますが、こういうことでいいのかな。 もしかしてテキストファイル内の文字列検索? unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; procedure TntFormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure TntFormDestroy(Sender: TObject); private { Private 宣言 } FMaskList: TStringList; function Match(const FileName: String): Boolean; procedure Find(const S: String); public { Public 宣言 } end; var Form1: TForm1; implementation uses Masks, FileCtrl; {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin FMaskList := TStringList.Create; FMaskList.CommaText := '*.pas *.dfm'; end; function TForm1.Match(const FileName: String): Boolean; var I: Integer; begin for I := 0 to FMaskList.Count - 1 do if MatchesMask(FileName, FMaskList[I]) then begin Result := True; Exit; end; Result := False; end; procedure TForm1.Find(const S: String); var SR: TSearchRec; begin if FindFirst(S + '\*.*', faAnyFile, SR) = 0 then begin repeat if (SR.Name <> '.') and (SR.Name <> '..') then if (SR.Attr and faDirectory) <> 0 then Find(S + '\' + SR.Name) else if Match(S + '\' + SR.Name) then Memo1.Lines.Add(S + '\' + SR.Name); until FindNext(SR) <> 0; FindClose(SR); end; end; procedure TForm1.Button1Click(Sender: TObject); var S: String; begin if SelectDirectory('フォルダの選択', '', S) then begin if IsDelimiter('\', S, Length(S)) then SetLength(S, Length(S) - 1); Find(S); end; end; procedure TForm1.FormDestroy(Sender: TObject); begin FMaskList.Free; end; end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.