Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.20;
Скачать: CL | DM;

Вниз

FindFirst, FindNext .....   Найти похожие ветки 

 
Gnoll   (2006-08-02 13:43) [0]

как с помощью FindFirst,FindNext искать ТОЛЬКО папки?  или при нахождении  проверить является ли найденное папкой
Я сначало думал что faDirectory это филтр для папок , но он находжит также и файлы


 
Virgo_Style ©   (2006-08-02 13:47) [1]

Gnoll   (02.08.06 13:43)
проверить является ли найденное папкой

проверить атрибут найденного


 
Gnoll   (2006-08-02 16:11) [2]

А что это даст?
у папки что атрибут особый?


 
Gnoll   (2006-08-02 16:20) [3]

И вот ещё
почему  при таком коде

procedure TForm1.Button2Click(Sender: TObject);
var
Rec : TSearchRec;

begin
findFirst("c:\*.*",FaAnyFile,Rec);
repeat
 FindNext(rec);
 Memo.lines.add(REc.Name);
until FindNext(Rec) <> 0;
end;

Он находит даже не все папки и файлы которые расположены в заданой директории


 
Германн ©   (2006-08-02 16:26) [4]


> Он находит даже не все папки и файлы которые расположены
> в заданой директории

Он то находит, да ты их теряешь.


 
Gnoll   (2006-08-02 16:29) [5]

как я их теряю ??? :(
ну объяснил бы хоть блин...  я туп и глуп


 
Германн ©   (2006-08-02 16:31) [6]


> repeat
>  FindNext(rec);   Это найденное ты добавляешь в Мемо
>  Memo.lines.add(REc.Name);
> until FindNext(Rec) <> 0; А это найденное идет псу под хвост
>


 
zdm ©   (2006-08-02 16:35) [7]

findFirst("c:\*.*", faDirectory,Rec);


 
Reindeer Moss Eater ©   (2006-08-02 16:37) [8]

while FindNext(rec) = 0 do if (rec.Attr and faDirectory) = faDirectory then Это_папка


 
Ketmar ©   (2006-08-02 16:45) [9]

> [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.


 
Германн ©   (2006-08-02 16:50) [10]


> Ketmar ©   (02.08.06 16:45) [9]

А нафиг нужно было плодить лишние сущности?


 
Ketmar ©   (2006-08-02 16:57) [11]

> [10] Германн ©   (02.08.06 16:50)

??? нафиг было демонстрировать верный код? не знаю. люблю, когда код правильный.


 
Германн ©   (2006-08-02 16:59) [12]

Нет. Нафиг нужна r?


 
Ketmar ©   (2006-08-02 17:29) [13]

пример, где r изничтожили и ничего не ввели взамен -- в студию.


 
Zeqfreed ©   (2006-08-02 17:32) [14]

> [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:33) [15]

> [14] Zeqfreed ©   (02.08.06 17:32)

это что за бред? что, первый найденый файл нам нафиг не нужен, да? ну, может, кому и так сойдёт, а я предпочитаю корректный код. который ничего не теряет.


 
Германн ©   (2006-08-02 17:35) [16]


> пример, где r изничтожили и ничего не ввели взамен -- в
> студию.

 sr: TSearchRec;
begin
if FindFirst("c:\*.*", faAnyFile, sr) = 0 then repeat
  WriteLn(sr.Name);
until FindNext(sr) <> 0;
FindClose(sr);
end;


 
Zeqfreed ©   (2006-08-02 17:36) [17]

> [15] Ketmar ©   (02.08.06 17:33)

Да, действительно, поторопился. Для обработки первого файла надо вставить HandleFile перед циклом.


 
Ketmar ©   (2006-08-02 17:37) [18]

> [16] Германн ©   (02.08.06 17:35)

убедил. я был неправ. инертность мышления, блин... %-( надо больше думать. %-)


 
Плохиш ©   (2006-08-02 19:31) [19]


> 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, вроде как и не нужно?


 
Zeqfreed ©   (2006-08-02 19:34) [20]

> А первое, найденное по FindFirst, вроде как и не нужно?

Нужно, если поиск начинать с корня диска.


 
Reindeer Moss Eater ©   (2006-08-02 19:35) [21]

А первое, найденное по FindFirst, вроде как и не нужно?

<Цитата>

Это всего лишь фрагмент иллюстирующий как отличить папку от файла


 
Ketmar ©   (2006-08-02 20:22) [22]

> [19] Плохиш ©   (02.08.06 19:31)

ну нет у меня на работе ни Delphi, ни справки. не по этим делам у меня работа. %-)


 
Anatoly Podgoretsky ©   (2006-08-02 20:39) [23]

Zeqfreed ©   (02.08.06 19:34) [20]
А в других папках можно и плюнуть на потерю?


 
Zeqfreed ©   (2006-08-03 07:17) [24]

> [23] Anatoly Podgoretsky ©   (02.08.06 20:39)

Наврядли файл . действительно кому-то нужен при поиске.



Страницы: 1 вся ветка

Текущий архив: 2006.08.20;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.049 c
1-1151931242
Шурик
2006-07-03 16:54
2006.08.20
Работа с MSWord


15-1153585694
Pazitron_Brain
2006-07-22 20:28
2006.08.20
За сколько можно продать комп?


2-1153952634
vain
2006-07-27 02:23
2006.08.20
Проект привык к dll


4-1146320331
h8394E
2006-04-29 18:18
2006.08.20
Типы контролов


2-1154528062
cando
2006-08-02 18:14
2006.08.20
биты