Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 15.11.2009, 15:12   #1
Mickset
Пользователь
 
Регистрация: 12.11.2009
Сообщений: 12
Вопрос Поиск в подкаталогах

Всем привет! Что нужно добавить в процедуру, чтобы она искала файлы в подкаталогах?!
Код:
procedure ScanDir(StartDir, 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
     ScanDir(StartDir + SearchRec.Name + '',Mask,List);
   until
    FindNext(SearchRec) <> 0;
   FindClose(SearchRec);
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  list: TStrings;
begin 
  list:= TStringList.Create; 
  ScanDir('C:\file\', '*.txt', list);
  Memo1.Lines:= list;
  list.Free;
end;

Последний раз редактировалось mihali4; 15.11.2009 в 15:22.
Mickset вне форума
Старый 15.11.2009, 15:23   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Mickset Посмотреть сообщение
Что нужно добавить в процедуру, чтобы она искала файлы в подкаталогах?
Рекурсивный вызов самой себя, когда найден каталог.
mihali4 вне форума
Старый 15.11.2009, 16:17   #3
Mickset
Пользователь
 
Регистрация: 12.11.2009
Сообщений: 12
По умолчанию

Я извиняюсь.. Но не могли бы вы показать Это на коде, а то я ещЕ не очень смыслю в Delphi

Последний раз редактировалось mihali4; 15.11.2009 в 17:48.
Mickset вне форума
Старый 15.11.2009, 16:25   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Вводим в строку поиска по форуму "рекурсия" и сразу находим ответ:
http://www.programmersforum.ru/showt...F3%F0%F1%E8%FF
mihali4 вне форума
Старый 15.11.2009, 16:40   #5
Mickset
Пользователь
 
Регистрация: 12.11.2009
Сообщений: 12
По умолчанию

Не получаетса подправить код... ((
Mickset вне форума
Старый 15.11.2009, 16:51   #6
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Да найди готовый, это стандартная процедура.
рекурсивный обход delphi
рекурсивный поиск файлов delphi
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума
Старый 15.11.2009, 17:28   #7
Mickset
Пользователь
 
Регистрация: 12.11.2009
Сообщений: 12
По умолчанию

Не .. мне нужен этот код подправить..

Последний раз редактировалось Mickset; 15.11.2009 в 17:58. Причина: Школота
Mickset вне форума
Старый 15.11.2009, 18:24   #8
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Сообщение от Mickset Посмотреть сообщение
Не .. мне нужен этот код подправить..
Так она у тебя и так рекурсивная. Не нужно ничего добавлять.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума
Старый 15.11.2009, 19:07   #9
Mickset
Пользователь
 
Регистрация: 12.11.2009
Сообщений: 12
По умолчанию

Но он не ищет в подкаталогах!

Помогите пожалуйста! Мне очень нужно што бы функция искала файлы в подкаталогах...

Последний раз редактировалось mihali4; 15.11.2009 в 21:05.
Mickset вне форума
Старый 15.11.2009, 23:25   #10
DarkEvil
Форумчанин
 
Аватар для DarkEvil
 
Регистрация: 08.05.2009
Сообщений: 247
По умолчанию

ScanDir(StartDir + SearchRec.Name + '',Mask.List);
точка а не запятая
Мой сайт
Цитата:
Сообщение от Scream In Darkness
Кровь не даёт покоя! Кровь не знает сна!
Кровь бежит на волю – Вены рвёт сама!
DarkEvil вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск spree Microsoft Office Excel 22 16.11.2009 15:08
Поиск-? Evgenii БД в Delphi 8 31.07.2009 16:27
поиск - ? Evgenii БД в Delphi 11 22.07.2009 19:41
поиск artemavd БД в Delphi 3 21.10.2008 17:39
Поиск Andr Microsoft Office Excel 2 18.07.2007 11:49