![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
FindFirst, FindNext .....
Gnoll © (2006-08-02 13:43:00)как с помощью FindFirst,FindNext искать ТОЛЬКО папки? или при нахождении проверить является ли найденное папкой
Я сначало думал что faDirectory это филтр для папок , но он находжит также и файлы
Zeqfreed (2006-08-03 07:17:00) [1]> [23] Anatoly Podgoretsky © (02.08.06 20:39)
Наврядли файл . действительно кому-то нужен при поиске.
Anatoly Podgoretsky (2006-08-02 20:39:00) [2]Zeqfreed © (02.08.06 19:34) [20]
А в других папках можно и плюнуть на потерю?
Ketmar (2006-08-02 20:22:00) [3]> [19] Плохиш © (02.08.06 19:31)
ну нет у меня на работе ни Delphi, ни справки. не по этим делам у меня работа. %-)
Reindeer Moss Eater (2006-08-02 19:35:00) [4]А первое, найденное по FindFirst, вроде как и не нужно?
<Цитата>
Это всего лишь фрагмент иллюстирующий как отличить папку от файла
Zeqfreed (2006-08-02 19:34:00) [5]> А первое, найденное по FindFirst, вроде как и не нужно?
Нужно, если поиск начинать с корня диска.
Плохиш (2006-08-02 19:31:00) [6]
> Ketmar © (02.08.06 17:29) [13]
> пример, где r изничтожили и ничего не ввели взамен -- в
> студию
Пример в справке ;-)
> Reindeer Moss Eater © (02.08.06 16:37) [8]
> while FindNext(rec) = 0 do if (rec.Attr and faDirectory)
> = faDirectory then Это_папка
А первое, найденное по FindFirst, вроде как и не нужно?
Ketmar (2006-08-02 17:37:00) [7]> [16] Германн © (02.08.06 17:35)
убедил. я был неправ. инертность мышления, блин... %-( надо больше думать. %-)
Zeqfreed (2006-08-02 17:36:00) [8]> [15] Ketmar © (02.08.06 17:33)
Да, действительно, поторопился. Для обработки первого файла надо вставить HandleFile перед циклом.
Германн (2006-08-02 17:35:00) [9]
> пример, где r изничтожили и ничего не ввели взамен -- в
> студию.
sr: TSearchRec;
begin
if FindFirst('c:\*.*', faAnyFile, sr) = 0 then repeat
WriteLn(sr.Name);
until FindNext(sr) <> 0;
FindClose(sr);
end;
Ketmar (2006-08-02 17:33:00) [10]> [14] Zeqfreed © (02.08.06 17:32)
это что за бред? что, первый найденый файл нам нафиг не нужен, да? ну, может, кому и так сойдёт, а я предпочитаю корректный код. который ничего не теряет.
Zeqfreed (2006-08-02 17:32:00) [11]> [13] Ketmar © (02.08.06 17:29)
Думается, что как и в случае использования r, без её использования резальтат будет храниться-таки в одном из регистров.
if (FindFirst(Mask, faAnyFile, SR) = 0) then begin
while (FindNext(SR) = 0) do HandleFile(SR.Name);
FindClose(SR);
end;
?
Ketmar (2006-08-02 17:29:00) [12]пример, где r изничтожили и ничегоне ввели взамен -- в студию.
Германн (2006-08-02 16:59:00) [13]Нет. Нафиг нужна r?
Ketmar (2006-08-02 16:57:00) [14]> [10] Германн © (02.08.06 16:50)
??? нафиг было демонстрировать верный код? не знаю. люблю, когда код правильный.
Германн (2006-08-02 16:50:00) [15]
> Ketmar © (02.08.06 16:45) [9]
А нафиг нужно было плодить лишние сущности?
Ketmar (2006-08-02 16:45:00) [16]> [3] Gnoll (02.08.06 16:20)
потому что код неверный.
var
r: Integer;
sr: TSearchRec;
begin
r := FindFirst('c:\*.*', faAnyFile, sr);
while r = 0 do
begin
WriteLn(sr.Name);
r := FindNext(sr);
end;
FindClose(sr);
end;
rtfm.
Reindeer Moss Eater (2006-08-02 16:37:00) [17]while FindNext(rec) = 0 do if (rec.Attr and faDirectory) = faDirectory then Это_папка
zdm (2006-08-02 16:35:00) [18]findFirst('c:\*.*', faDirectory,Rec);
Германн (2006-08-02 16:31:00) [19]
> repeat
> FindNext(rec); Это найденное ты добавляешь в Мемо
> Memo.lines.add(REc.Name);
> until FindNext(Rec) <> 0; А это найденное идет псу под хвост
>
Gnoll (2006-08-02 16:29:00) [20]как я их теряю ??? :(
ну объяснил бы хоть блин... я туп и глуп