Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.043 c
1-1151851802
AlexeyT
2006-07-02 18:50
2006.08.20
Глюк отрисовки (гориз. полосы) в TListView: ???


2-1154202529
Bad mathematics
2006-07-29 23:48
2006.08.20
Процентное соотношение


15-1153456071
leonidus
2006-07-21 08:27
2006.08.20
Размер иконки для размещения ее в трее


4-1146195109
Progh
2006-04-28 07:31
2006.08.20
Добавление и удаление сетевого ресурса


2-1154143749
Василий
2006-07-29 07:29
2006.08.20
Как пользоваться функцией GetWindowplacement?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский