| 
| 
 | Вопрос # 5 871/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!При выводе содержимого папки наблюдаются . и ..
 .. каким-то образом проходит проверку. Что не так?
 Приложение:Переключить в обычный режим procedure ListFileDir(Path: string; FileList: TStrings);var  SR: TSearchRec;begin  if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then  begin    repeat      if (SR.Attr <> faAnyFile) then      if not (SR.Name = '.') or (SR.Name = '..') then FileList.Add(SR.Name);    until FindNext(SR) <> 0;     FindClose(SR);  end;end;
|  |   Вопрос задал: Shouldercannon (статус: Посетитель)Вопрос отправлен: 11 января 2012, 19:26
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Вадим К Здравствуйте, Shouldercannon!Просто проверка неверная.
 Смотрим по вариантам.
 1) SR.Name = '.'
 будет not true or false  = false
 2) SR.Name = '..'
 будет not false or true = true
 3) какое то имя
 будет not false or false = true
 
 поэтому, правильно писать так
 
 if not ((SR.Name = \'.\') or (SR.Name = \'..\')) then FileList.Add(SR.Name);или так 
 if not (SR.Name = \'.\') and  not (SR.Name = \'..\') then FileList.Add(SR.Name);или так 
 if (SR.Name <> \'.\') and  (SR.Name <> \'..\') then FileList.Add(SR.Name); 
|  | Ответ отправил: Вадим К (статус: Академик)Время отправки: 11 января 2012, 19:54
 Оценка за ответ: 5
 Комментарий к оценке: Спасибо за помощь |  
 Мини-форум вопросаВсего сообщений: 4; последнее сообщение — 13 января 2012, 23:32; участников в обсуждении: 3. 
|   | Shouldercannon (статус: Посетитель), 11 января 2012, 20:06 [#1]:Смущают [code]\'.\'[\code] и [code]\'..\'[\code]
 Illegal character in input file: '\' ($5C)
 |  
|   | Ерёмин А.А. (статус: *Администратор), 11 января 2012, 20:35 [#2]:Вадим К: как ты умудрился отправить со слэшами? Вроде этой проблемы на сайте давно нет. |  11 января 2012, 21:30: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Работа с файловой системой модератором Ерёмин А.А. 
|   | Shouldercannon (статус: Посетитель), 11 января 2012, 22:20 [#3]:Всеголишь дополнительных скобок не хватало  Спасибо за корректировку |  
|   | bugmenot (статус: 3-ий класс), 13 января 2012, 23:32 [#4]: Цитата (Ерёмин А.А.): Вроде этой проблемы на сайте давно нет.  Еще как есть
   виконання програми розпочинається з того самого мiсця, де призупинилося.
 
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |