Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.09;
Скачать: CL | DM;

Вниз

Маска файла *.* и файл без расширения   Найти похожие ветки 

 
Serg777   (2005-08-06 12:39) [0]

StrSatisfy("123.exe","*.*") -> true
StrSatisfy("123"    ,"*.*") -> false
Я сканирую каталог в котором есть файлы без расширения и функция их не пропускает, а мне надо все файлы.
Без этой Функции я не могу, т.к. маска может быть разной.


 
Ajax ©   (2005-08-06 15:04) [1]

Может я не понял, но где в "123" точка, которая стоит в "*.*"? Попробуй просто задать маску "*".

PS: функцию не знаю, ответил из общих соображений, если глупость, извиняюсь.


 
Anatoly Podgoretsky ©   (2005-08-06 15:28) [2]

Так ты же явно указал точку в маске.


 
Anatoly Podgoretsky ©   (2005-08-06 15:28) [3]

И на всякий случай в Виндоус нет расширени, это чистая условность.


 
Serg777   (2005-08-06 16:33) [4]

Я так понимаю, что функция была создана в основном для работы с файлами. Например если пользователь введет "*.*", то в программе я это могу заменить на "*".
Но если он введет маску "*2?.*" (я так понимаю, что он имеет ввиду файлы с любым расширением, в том числе и без него), то функция выдаст false на файлах без расширения.
Кстати в Total Commander эта маска отмечает файлы и без расширения.
Можно конечно проверять каждый файл и если он без расширения, то добавлять точку. Но не хочется это делать.


 
Anatoly Podgoretsky ©   (2005-08-06 17:27) [5]

Serg777   (06.08.05 16:33) [4]
Ты неправильно подразумеваешь, не без расширения, а обязательно с ним, но с любым расширением. Надо любые, то маска должна быть *2?*" или возаожно *2?."


 
Serg777   (2005-08-06 17:36) [6]

ТОгда объясните почему принято помечать все файлы маской "*.*"


 
Anatoly Podgoretsky ©   (2005-08-06 17:41) [7]

По привычке, когда то были расширения, это когда имена были 8.3


 
Serg777   (2005-08-06 17:51) [8]

А сейчас, что их нет? Просто они могут быть и больше 3 символов.  

Предложенный пример *2?* пометить не только типа 123.exe, а также 123456.exe , 123456, 456123456 (а надо 456125.7657867)

*2?. пометить файлы у которых есть точка на конце.

Этот один недочет усложняет всю работу с масками как это принято в файловых менеджерах.


 
<Falcon>   (2005-08-08 10:16) [9]

Не пойму что за сложности? Зачем вообще StrSatisfy?
Почему не использовать DirList?
DirList:=NewDirList(OpenDirDialog1.Path, EditBox1.Text,FILE_ATTRIBUTE_NORMAL);
DirList.ScanDirectory(OpenDirDialog1.Path, EditBox1.Text,FILE_ATTRIBUTE_NORMAL);
и т.д.
Например так. Выбирай каталог, вводи в эдит свою маску и получай список фалов.
Если просто в нужно список вывести то вообще можно воспользоваться функциями комбобокса или мемо...
Или я чего-то не понял в вопросе?


 
Serg777   (2005-08-11 21:55) [10]

Я не хочу список файлов.
Я хочу при сканировании сразу что-нибудь делать с текущий файлом, не сохраняя его путь и имя.
А NewDirList может сканировать рекурсивно?


 
GMax   (2005-08-17 00:10) [11]

во времена 8.3 не было имён файлов без расширения, были с пустым расширением ххх., поэтому маска *.* была вполне легитимна.


 
GMax   (2005-08-17 20:20) [12]

... и, кстати, "*" означало файл без расширения (с пустым расширением)



Страницы: 1 вся ветка

Текущий архив: 2006.04.09;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
3-1140074393
Корешь
2006-02-16 10:19
2006.04.09
Как выбрать только уникальные записи


1-1141626217
set45465
2006-03-06 09:23
2006.04.09
Исключительные ситуации


3-1140067253
Рафик
2006-02-16 08:20
2006.04.09
Помогите создать запрос по дате


2-1142951680
Dest81
2006-03-21 17:34
2006.04.09
Interbase


2-1143172232
PIA
2006-03-24 06:50
2006.04.09
Обработка визуальных компонентов