Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.05.11;
Скачать: [xml.tar.bz2];

Вниз

Поиск файлов по нескольким маскам и подкаталогам   Найти похожие ветки 

 
Rhammer ©   (2008-04-11 16:36) [0]

Столкнулся с данной проблемой. Мне нужно осуществить поиск файлов по нескольким маскам а точнее *.rar *.zip *.7z
Сейчас использую данный алгоритм:

procedure TForm1.Button1Click(Sender: TObject);
Var SR:TSearchRec; // поисковая переменная
   FindRes, n :Integer; // переменная для записи результата поиска

begin
ListBox1.Clear; // очистка компонента ListBox1 перед занесением в него списка файлов
n:= 0;
FindRes:=FindFirst(Button2.Caption+Edit1.Text,faAnyFile,SR); // задание условий поиска и начало поиска
While FindRes=0 do // пока мы находим файлы (каталоги), то выполнять цикл
  begin
     Inc(n);
     archives[n]:=SR.Name;
     ListBox1.Items.Add(SR.Name); // добавление в список название найденного элемента
     FindRes:=FindNext(SR); // продолжение поиска по заданным условиям
  end;
FindClose(SR); // закрываем поиск
Label1.Caption:="Количество найденных объектов: ";
Label2.Caption:=IntToStr(n);
end;


Поиск в гугл дал мне инфу о компоненте FileList, я скачал но так и не разобрался в нем. Подскажите пожалуйста как осуществить это


 
clickmaker ©   (2008-04-11 16:43) [1]

FileListBox


 
Palladin ©   (2008-04-11 16:44) [2]

по одной маске умеешь, а головы не несколько не хватает?


 
<code>   (2008-04-11 16:53) [3]

>Мне нужно осуществить поиск файлов по нескольким маскам а точнее *.rar *.zip *.7z

Нужно искать файлы по маске *.*, и потом сравнивать:

 begin
    Inc(n);
//     archives[n]:=SR.Name;

    If LowerCase( ExtractFileExt(SR.Name) ) = ".rar" then
    ListBox1.Items.Add(SR.Name); // добавление в список название найденного элемента

    If LowerCase( ExtractFileExt(SR.Name) ) = ".zip" then
    ListBox1.Items.Add(SR.Name); // добавление в список название найденного элемента

    If LowerCase( ExtractFileExt(SR.Name) ) = ".7z" then
    ListBox1.Items.Add(SR.Name); // добавление в список название найденного элемента

    FindRes:=FindNext(SR); // продолжение поиска по заданным условиям
 end;


А что бы по нескольким каталогам - надо сделать что бы функция сама себя вызывала - рекурсивно.


 
clickmaker ©   (2008-04-11 17:00) [4]


> [3]   (11.04.08 16:53)

MatchesMask() не проще?


 
Rhammer ©   (2008-04-11 17:09) [5]


> Palladin ©   (11.04.08 16:44) [2]
> по одной маске умеешь, а головы не несколько не хватает?
>

Исходник взял в инете, поэтому согласен головы не хватает.


>

Спасибо за помощь



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.05.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.006 c
2-1208175929
Антон Вл.
2008-04-14 16:25
2008.05.11
Сортировка


2-1205786896
mr1Andersen
2008-03-17 23:48
2008.05.11
вырезать вставлять


15-1207018123
Slider007
2008-04-01 06:48
2008.05.11
С днем рождения ! 1 апреля 2008 вторник


15-1206828712
Riply
2008-03-30 01:11
2008.05.11
Vista и ограничения


15-1206973787
MASTAFA
2008-03-31 18:29
2008.05.11
Помогите с asm 16 перевести на 32 таких два небольших кусочка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский