Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

FindNext-лишние файлы [D7]


nellyk ©   (2010-08-29 22:52:00) 

Вот такая процедура выдает непустой список файлов, в котором, например, 'A02B02C03D03E03.txt'. Это как?!? (Такие "шутки" возникают только при маске поиска с числами.) Получено в Delphi 7.

procedure TForm1.FormCreate(Sender: TObject);
const s0='1';
var sr: TSearchRec;
    s:string;
begin
SetCurrentDir('D:\T2'); s:='';
if FindFirst('*'+s0+'*.txt',faAnyFile,sr)=0 then
 while (true) do begin
       if (Pos(s0,sr.Name)=0) then
          s:=s+sr.Name+chr(10)+chr(13);
       if (FindNext(sr) <> 0) then break;
 end;
ShowMessage(s);
end;


Dennis I. Komarov   (2010-08-31 10:58:00) [1]


> Плохиш ©   (30.08.10 20:50) [10]

Там логика в голове не красивая... Надо исправить! ;)


Anatoly Podgoretsky   (2010-08-31 08:57:00) [2]

Она много чего не знает, но она научится.


Плохиш   (2010-08-30 20:50:00) [3]


> Dennis I. Komarov ©   (30.08.10 12:03) [9]

Да ладно тебе, она просто ещё не знает про циклы repeat...


Dennis I. Komarov   (2010-08-30 12:03:00) [4]


>  while (true) do begin
>    ...
>        if (FindNext(sr) <> 0) then break;

Вот такое убери и больше не показывай...


nellyk   (2010-08-30 00:33:00) [5]

Спасибо, я так и сделала (просто сравнивая), но до dir не додумалась, так как поиском чаще пользуюсь в Far-е, а там обработка нормальная.
Еще раз, спасибо - вопрос закрыт!


Anatoly Podgoretsky   (2010-08-30 00:25:00) [6]

> nellyk  (29.08.2010 23:37:06)  [6]

Нельзя, это по дизайну, но их можно игнорировать, сравнивая по маске.
MatchesMask


nellyk   (2010-08-29 23:37:00) [7]

Здорово! Слов нет!!! А нельзя запретить работу с сокращенными именами?


Anatoly Podgoretsky   (2010-08-29 23:17:00) [8]

Не увидит, надо dir *1*.txt /x


nellyk   (2010-08-29 23:16:00) [9]

ОК, еще раз спасибо - если узнаю, то сообщу.


Palladin   (2010-08-29 23:12:00) [10]

) Фих знает... надо гуглить... мне интересно, но лень )


nellyk   (2010-08-29 23:09:00) [11]

Спасибо большое, такое как-то в голову не приходило... А в чем дело-то? Хотелось бы знать. Т.е. в каких случаях такое может получаться (и почему)?


Palladin   (2010-08-29 23:03:00) [12]

Delphi в этом не виновата. Введи в коммандной строке dir *1*.txt и увидишь.


Наверх

Титульная страница Поиск, карта сайта Написать письмо