Форум: "Основная";
Текущий архив: 2003.10.16;
Скачать: [xml.tar.bz2];
ВнизОшибка в FAQ и HELP Найти похожие ветки
← →
MegaVolt (2003-10-01 13:34) [0]Почему в FAQ на этом форуме и в дельфяшном HELP для поиска всех файлов указывается маска *.* а не просто * ? Ведь есть файлы которые не имеют расширения и по маске *.* не находятся?
← →
han_malign (2003-10-01 14:37) [1]>Ведь есть файлы которые не имеют расширения и по маске *.* не находятся?
- прекрасно они находятся, *.* используется для совместимости с 8.3, где файл всегда имеет расширение, допустимо пустое(!). А вот по маске "* ." найдутся только файлы без расширения.
← →
MegaVolt (2003-10-01 17:08) [2]Почему же тогда функции FindFirst-FindNext-FindClose при вводе для поиска *.* пропускают файлы без расширения???
← →
MegaVolt (2003-10-01 17:15) [3]Почему же тогда функции FindFirst-FindNext-FindClose при вводе для поиска *.* пропускают файлы без расширения???
← →
pasha_golub (2003-10-01 18:46) [4]2MegaVolt
Она их не пропускает, код плиз
← →
Anatoly Podgoretsky (2003-10-01 20:03) [5]Ты знаешь, что значит эта звездочка?
← →
MegaVolt (2003-10-02 09:12) [6]Код в студию:
procedure TShareFind.ScanDir(InitialDir:String);
var
F:TSearchRec;
Found:integer;
i,j:int64;
begin
Found:=FindFirst(InitialDir+"\*",faAnyFile,f);
while Found=0 do
begin
if (f.Name<>".") and (f.Name<>"..")
then // нашли очередной файл... или директорию
if ((f.Attr and faDirectory)>0)
then ScanDir(InitialDir+"\"+f.Name)
else
begin
// Что то делаем с найденым файлом
end;
Found:=FindNext(f);
end;
SysUtils.FindClose(f);
end;
Звёздочка обозначает любое количество любых символов. А если смотреть по исходникам то имя файла проверяется на соответствие этой маске. И кстати проверка почему-то регистро чувствительна только к русским символам :(
← →
MegaVolt (2003-10-02 13:26) [7]Так что всё таки баг?
← →
[lamer]Barmaglot (2003-10-02 13:29) [8]Явный баг, скорее всего твой...
работающий пример - http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=1015254946&n=19
← →
han_malign (2003-10-02 13:40) [9]> А если смотреть по исходникам то имя файла проверяется на соответствие этой маске.
- это где это ты исходники Windows нарыл???
А если это не Windows, то и маска файла будет работать соотвественно принятым в OS правилам - Delphi, и его FAQ, и его Help - здесь абсолютно не причем.
В *NIX - вообще нет такого понятия как расширение, и маска *.* означает - все файлы в имени которых есть "."...
← →
Anatoly Podgoretsky (2003-10-02 14:21) [10]MegaVolt © (02.10.03 09:12) [6]
Именно любое включая и нулевое, так как тогда *.* может противоречить?
Кстити ведешь ресь про *.*, а в запрошенном примере только *
← →
MegaVolt (2003-10-02 15:57) [11]Видно не с той ноги встал :( И тот и тот пример успешно работает :(
← →
AlexKniga (2003-10-02 16:52) [12]han_malign
> маска *.* означает - все файлы в имени которых есть "."...
маска * не найдет скрытые файлы (. .. .anything)
← →
Anatoly Podgoretsky (2003-10-02 16:58) [13]И забыть про расширения, они для файловой системы не существуют, только в режиме ДОС, они для ассоциативного запуска.
← →
MegaVolt (2003-10-03 10:45) [14]AlexKniga:
Что не найдут? Корневой каталог? и вышестоящий каталог? Чесно говоря по моему представлению если я ищу файлы они и так не должны находится (хотя находятся почему то :( )
← →
Anatoly Podgoretsky (2003-10-03 11:44) [15]Наверно у тебя ошибка, поэтому и находятся, у других порядок.
← →
AlexKniga (2003-10-03 17:43) [16]MegaVolt
я говорил про *nix
← →
MegaVolt (2003-10-06 15:18) [17]Где ошибка я же привёл исходник. Кстати по ссылке тоже проверяется не нашли ли мы случайно . или ..
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.16;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.01 c