|
Вопрос # 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', ...
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|