Форум: "Начинающим";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];
ВнизПоиск файлов по маске Найти похожие ветки
← →
Sdubaruhnul (2007-07-29 18:25) [0]Здравствуйте, Мастера.
Использую для поиска ф-ии API FindFirstFileW и компанию. Как бы лучше организовать поиск файлов по маске, допустим такой: "*.txt; *.doc". Вижу два варианта:
1. Задаю длинную поисковую строку типа "c:\temp\*.txt; c:\temp\*.doc".
2. Ищу всё строкой типа "c:\temp\*.*" и далее проверяю найденное на предмет соответствия маске.
← →
MsGuns © (2007-07-29 20:18) [1]Однако файловые функции есть для этого, в.ч. и для масок
← →
Sdubaruhnul (2007-07-29 20:49) [2]>Однако файловые функции есть для этого, в.ч. и для масок
Какие? Важен Unicode.
← →
Sdubaruhnul (2007-07-30 11:22) [3]Так что, никто не может посоветовать? Как будет быстрее с точки зрения поиска файлов? Не опасно ли передавать длинные строки (ведь может получится из десять путей чёрти что)?
Готовые Дельфийские функции не годятся - они все не-Unicode"ные.
← →
Сергей М. © (2007-07-30 11:28) [4]
> Готовые Дельфийские функции не годятся - они все не-Unicode"ные
Это какие же ?
← →
Sdubaruhnul (2007-07-30 14:53) [5]FindFirst, FindNext...
function FindFirst(const Path: string; Attr: Integer;
var F: TSearchRec): Integer;
F.FindHandle := FindFirstFile(PChar(Path), F.FindData);
← →
clickmaker © (2007-07-30 15:15) [6]
> 1. Задаю длинную поисковую строку типа "c:\temp\*.txt; c:\temp\*.doc".
> 2. Ищу всё строкой типа "c:\temp\*.*" и далее проверяю найденное
> на предмет соответствия маске.
а FindFirstFile разве поймет вариант 1?
← →
Sdubaruhnul (2007-07-30 16:07) [7]>а FindFirstFile разве поймет вариант 1?
Поймёт. Но мне эту строку сначала надо составить, а потом FindFirstFile будет её разбирать. И так нужно составлять для каждой подпапки, если искать всё внутри каталога. Нет, чего-то я склоняюсь ко второму варианту.
← →
DVM © (2007-07-30 16:12) [8]
> Нет, чего-то я склоняюсь ко второму варианту.
ИМХО 2) удобнее и понятнее. До опр. пределов, конечно.
← →
iXT © (2007-07-30 17:01) [9]2 + if is Dir then FindInDir
← →
Двигатель внешнего сгорания (2007-07-31 12:33) [10]
> Sdubaruhnul (30.07.07 16:07) [7]
> >а FindFirstFile разве поймет вариант 1?
Поймёт.
Откуда такая информация?
> 1. Задаю длинную поисковую строку типа "c:\temp\*.txt; c:
> \temp\*.doc".2. Ищу всё строкой типа "c:\temp\*.*" и далее
> проверяю найденное на предмет соответствия маске.
Второй вариант однозначно.
Стандартные функции так и работают: Перебор всех файлов и проверка соответствия маске.
← →
Плохиш © (2007-07-31 12:39) [11]
> (ведь может получится из десять путей чёрти что)
Если топтать кнопки не думая и не понимая, то да, может получиться.
← →
Плохиш © (2007-07-31 12:44) [12]
> Как будет быстрее с точки зрения поиска файлов?
С точки зрения поиска файла передача маски будет нааамногооо быстрее, чем, то, что может быть нагорожено проверками...
← →
Двигатель внешнего сгорания (2007-08-03 13:34) [13]
> Плохиш © (31.07.07 12:44) [12]
> > Как будет быстрее с точки зрения поиска файлов?С точки
> зрения поиска файла передача маски будет нааамногооо быстрее,
> чем, то, что может быть нагорожено проверками...
Абсолютно одинаково.
← →
DVM © (2007-08-03 13:45) [14]
> С точки зрения поиска файла передача маски будет нааамногооо
> быстрее
Вы проверяли?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.043 c