![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Маска файла *.* и файл без расширения [Delphi, Windows]
Serg777 © (2005-08-06 12:39:00)StrSatisfy('123.exe','*.*') -> true
StrSatisfy('123' ,'*.*') -> false
Я сканирую каталог в котором есть файлы без расширения и функция их не пропускает, а мне надо все файлы.
Без этой Функции я не могу, т.к. маска может быть разной.
GMax (2005-08-17 20:20:00) [1]... и, кстати, "*" означало файл без расширения (с пустым расширением)
GMax (2005-08-17 00:10:00) [2]во времена 8.3 не было имён файлов без расширения, были с пустым расширением ххх., поэтому маска *.* была вполне легитимна.
Serg777 (2005-08-11 21:55:00) [3]Я не хочу список файлов.
Я хочу при сканировании сразу что-нибудь делать с текущий файлом, не сохраняя его путь и имя.
А NewDirList может сканировать рекурсивно?
<Falcon> (2005-08-08 10:16:00) [4]Не пойму что за сложности? Зачем вообще StrSatisfy?
Почему не использовать DirList?
DirList:=NewDirList(OpenDirDialog1.Path, EditBox1.Text,FILE_ATTRIBUTE_NORMAL);
DirList.ScanDirectory(OpenDirDialog1.Path, EditBox1.Text,FILE_ATTRIBUTE_NORMAL);
и т.д.
Например так. Выбирай каталог, вводи в эдит свою маску и получай список фалов.
Если просто в нужно список вывести то вообще можно воспользоваться функциями комбобокса или мемо...
Или я чего-то не понял в вопросе?
Serg777 (2005-08-06 17:51:00) [5]А сейчас, что их нет? Просто они могут быть и больше 3 символов.
Предложенный пример *2?* пометить не только типа 123.exe, а также 123456.exe , 123456, 456123456 (а надо 4561 25.7657867)
*2?. пометить файлы у которых есть точка на конце.
Этот один недочет усложняет всю работу с масками как это принято в файловых менеджерах.
Anatoly Podgoretsky (2005-08-06 17:41:00) [6]По привычке, когда то были расширения, это когда имена были 8.3
Serg777 (2005-08-06 17:36:00) [7]ТОгда объясните почему принято помечать все файлы маской '*.*'
Anatoly Podgoretsky (2005-08-06 17:27:00) [8]Serg777 (06.08.05 16:33) [4]
Ты неправильно подразумеваешь, не без расширения, а обязательно с ним, но с любым расширением. Надо любые, то маска должна быть *2?*' или возаожно *2?.'
Serg777 (2005-08-06 16:33:00) [9]Я так понимаю, что функция была создана в основном для работы с файлами. Например если пользователь введет '*.*', то в программе я это могу заменить на '*'.
Но если он введет маску '*2?.*' (я так понимаю, что он имеет ввиду файлы с любым расширением, в том числе и без него), то функция выдаст false на файлах без расширения.
Кстати в Total Commander эта маска отмечает файлы и без расширения.
Можно конечно проверять каждый файл и если он без расширения, то добавлять точку. Но не хочется это делать.
Anatoly Podgoretsky (2005-08-06 15:28:00) [10]Так ты же явно указал точку в маске.
Anatoly Podgoretsky (2005-08-06 15:28:00) [11]И на всякий случай в Виндоус нет расширени, это чистая условность.
Ajax (2005-08-06 15:04:00) [12]Может я не понял, но где в '123' точка, которая стоит в '*.*'? Попробуй просто задать маску '*'.
PS: функцию не знаю, ответил из общих соображений, если глупость, извиняюсь.