| 
| 
 | Вопрос # 3 228/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!
 нужно последовательно обработать файлы в заданной папке по определенной маске (напр '*.dat' или 'sample??_01.da*').
 
 подскажите пожалуйста, есть ли "стандартные способы" (подобных GetFiirst,  FindNext...)  или придеться перебирать все файлы в папке и самому определять функцию сравнения с маской?
 
 спасибо.
 
|  |   Вопрос задал: zhenk (статус: Посетитель)Вопрос отправлен: 24 сентября 2009, 14:52
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Жикльор Здравствуйте, zhenk!
 Вы можете использовать такой код для поиска файлов в каталоге по маскам, он не работает для подпапок.
 
 var
 sec: TSearchRec;
 begin
 if FindFirst('Some katalog'+'*.dat',faAnyFile,sec) = 0 then
 begin
 ListBox1.Items.Add(sec.Name);
 while FindNext(sec) = 0 do ListBox1.Items.Add(sec.Name);
 end;
 end;
 
 В этом коде работает поиск файлов ДАТ и добавляет каждый найденный файл в ЛистБокс.
 
 P.S. Если не будет работать вместо = поставьте <>.
 
|  | Ответ отправил: Жикльор (статус: 5-ый класс)Время отправки: 30 сентября 2009, 23:44
 
 |  
 Мини-форум вопросаВсего сообщений: 2; последнее сообщение — 25 сентября 2009, 06:38; участников в обсуждении: 2. 
|   | min@y™ (статус: Доктор наук), 24 сентября 2009, 15:06 [#1]:Если масок несколько - то да, нужно будет сравнивать с ними поочерёдно, если одна, то нет. 
 Finded:= FindFirst(FullPath + '*.dat', faAnyFile, Rec);Функция сравнения по маске - MatchesMask() в модуле masks.pas. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | zhenk (статус: Посетитель), 25 сентября 2009, 06:38 [#2]:спасибо! 
 это как раз то что надо.
 
 маска для каждого раза раз одна и та же.
 
 я бы не скоро догадался, что можно так указать:
 FindFirst(FullPath + '*.dat', ...
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |