Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.029 c
2-1143218517
serko
2006-03-24 19:41
2006.04.09
Как обновить работающую программу?


2-1142871605
{AleX}
2006-03-20 19:20
2006.04.09
ADO&amp;MySQL


15-1142449191
TStas
2006-03-15 21:59
2006.04.09
Как устроен клавиатурный шпион?


10-1116491301
_Max
2005-05-19 12:28
2006.04.09
Копирование в Word`е


15-1142532712
lookin
2006-03-16 21:11
2006.04.09
Таки Зенит вышел в следующую стадию УЕФА...




   Наверх