Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Файлы, файлы, файлы... [D6, Win95/98]


Delphi Maniak ©   (2002-11-07 11:43:00) 

Подскажите плз, как сделать поиск в определенной папке по файлам с расширением acct и вывести список найденных файлов в TListView или TMemo. СРОЧНО!


Separator   (2002-11-07 12:05:00) [1]

эээ, в общем каждый день одно и тоже


KoluChi   (2002-11-07 11:57:00) [2]

(fido7.ru.delphi):
procedure ScanDir(StartDir: string; Mask:string; List:TStrings);
var
SearchRec : TSearchRec;
begin
if Mask = "" then Mask := "*.*";
if StartDir[Length(StartDir)] <> "\" then StartDir := StartDir + "\";
if FindFirst(StartDir+Mask, faAnyFile, SearchRec) = 0 then
begin
repeat
Application.ProcessMessages;
if (SearchRec.Attr and faDirectory) <> faDirectory then
List.Add(StartDir + SearchRec.Name)
else if (SearchRec.Name <> "..") and (SearchRec.Name <> ".") then begin
List.Add(StartDir + SearchRec.Name + "\");
ScanDir(StartDir + SearchRec.Name + "\",Mask,List);
end;
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
end;

Пример вызова. параметры
1. имя папки
2. маска, по умолчанию *.*
3. хранилище для резульатат, любой наследник от TString, например TStringList

procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Clear;
ScanDir("c:","",ListBox1.Items);
Label1.Caption := IntToStr(ListBox1.Items.Count);
end;

Анатолий Подгорецкий
anatoly@podgoretsky.com


Separator   (2002-11-07 11:54:00) [3]

procedure Find(Path: string; List: TStrings);
var
F: TSearchRec;
begin
if Path[Length(Path)] <> "\" then
Path:= Path + "\";
List.Clear;
if FindFirst(Path + "*.acct", faAnyFile, F) = 0 then
repeat
List.Add(F.Name)
until FindNext(F) <> 0;
FindClose(F)
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Find("C:\", ListBox1.Items);
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо