Форум: "Основная";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];
Вниз
Система поиска глючит! Найти похожие ветки
← →
DreYmanD (2004-07-03 15:12) [0]Привет всем мастерам!
Хочу в своей проге использовать систему поиска. Объясню поконкретней:
я нажимаю на Button1 и в обработчике пишу:
procedure TForm1.Button1Click(Sender: TObject);
var SearchRec: TSearchRec;
begin
FindFirst("c:\sasha\temp\*.txt", faAnyFile, SearchRec); \\Директория и формат файла, где будет происходить поиск
Form1.ListBox1.Items.Add(SearchRec.Name); \\Добавление файлов в ListBox
Form1.Label3.Caption:="Поиск завершен"; \\Надпись, которая появится после поиска
end;
Дело в том, что он находит только один файл и после повторного нажатия на Буттон1, в ЛистБоксе записывается тот же файл.
Какой мне надо дописать кусок кода, чтобы он находил в этой директории АБСОЛЮТНО все файлы данного формата? И еще, он у меня
опять же не хочет добавлять в ЛистБокс файлы из Windows\Temporary Internet Files....
Заранее спасибо!
← →
menart © (2004-07-03 15:20) [1]
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;
вроде так...
этот код я нашел здесь на этом сайте, просто надо было сначала поискать потом задавать вопросы
← →
DreYmanD (2004-07-03 15:30) [2]А не можешь дать ссылку, где ты это нашел?
← →
menart © (2004-07-03 15:53) [3]давненько это было, я этот код сам использовал, поделился с тобой :)
этот код приводил как пример Anatoly Podgoretsky
← →
DreYmanD (2004-07-03 15:57) [4]Ну ладно, попробую использовать...
← →
Cardinal © (2004-07-03 16:00) [5]Кстати, у меня тоже есть этот код, только немного преобразованный
← →
DreYmanD (2004-07-03 17:03) [6]Обращение к Menart и Cardinal.
Слушайте, не поможете мне разобраться с этим кодом? Я всего лишь неделю за Delphi сижу....
Мне надо, чтобы после нажатия на Буттон1 искались файлы в той директории, которая записана в системном коде.
В моем случае "C:\Windows\Temporary Internet Files\*.txt" Чтобы система нашла все файлы данного формата и записала их в ListBox....
Я вот еще думаю: появятся ли эти файлы в ЛистБоксе(это же Cookie), т.к. у меня это до этого не получалось(см. как я делал на самом верху).
← →
Vasya.ru (2004-07-03 17:10) [7]procedure GetDir(dir:string;list:tlistbox);
var
sr:tsearchrec;
begin
if findfirst(dir+"\*.*",faanyfile,sr)=0 then
begin
list.Items.Add(sr.Name);
while findnext(SR)=0 DO
list.Items.Add(sr.Name);
END;
findclose(sr);
end;
//example
procedure TForm1.Button1Click(Sender: TObject);
begin
getdir("c:\windows",listbox1);
end;
Кто то из местных давал пол года назад.
Для поиска по расширению либо запиши расш. в код (if findfirst(dir+"\*.СЮДА ПИШИ РАСШИРЕНИЕ",faanyfile,sr)=0 then)
Либо измени функцию:
procedure GetDir(dir:string;list:tlistbox; Rash : String);
...
(if findfirst(dir+"\*." + RASH,faanyfile,sr)=0 then)
...
Вроде понятно все написал...
← →
Cardinal © (2004-07-03 21:28) [8]DreYmanD (03.07.04 17:03) [6]
Функция у нас объявлена так:
procedure ScanDir(StartDir: string; Mask:string; List:TStrings);
ScanDir - строка, содержащая адрес директории, где надо искать
Mask - строка с маской, по которой надо искать файлы
List - объект типа TStrings, в который надо добавлять список
файлов
Для вашего случая:
ScanDir("C:\Windows\Temporary Internet Files\","*.txt",Listbox1.Items);
Если что не понятно, пишите
← →
ЮрийК © (2004-07-03 21:41) [9]"Я всего лишь неделю за Delphi сижу"
А раньше на чём писали?
← →
DreYmanD (2004-07-03 23:12) [10]Обращение к Vasya.ru - спасибо, попробую...
Обращение к Cardinal - тоже спасибо, все опробую...
Обращение к ЮрийК - вообще не писал...
Короче, все опробую, о результатах напишу...
Спасибо!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.048 c