Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 228

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!

нужно последовательно обработать файлы в заданной папке по определенной маске (напр '*.dat' или 'sample??_01.da*').

подскажите пожалуйста, есть ли "стандартные способы" (подобных GetFiirst, FindNext...) или придеться перебирать все файлы в папке и самому определять функцию сравнения с маской?

спасибо.

zhenk Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: 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™

min@y™ (статус: Доктор наук), 24 сентября 2009, 15:06 [#1]:

Если масок несколько - то да, нужно будет сравнивать с ними поочерёдно, если одна, то нет.
Finded:= FindFirst(FullPath + '*.dat', faAnyFile, Rec);
Функция сравнения по маске - MatchesMask() в модуле masks.pas.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
zhenk

zhenk (статус: Посетитель), 25 сентября 2009, 06:38 [#2]:

спасибо!

это как раз то что надо.

маска для каждого раза раз одна и та же.

я бы не скоро догадался, что можно так указать:
FindFirst(FullPath + '*.dat', ...

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:57
Выполнено за 0.03 сек.