Вниз
Скачать: CL | DM;

Функции FindFirst и FindNext   Найти похожие ветки 

 
Боян Георгиев   (2003-08-22 21:35) [0]

Мастера, как правильно
изпользовать функции
FindFirst и FindNext?

Я пишу этот код:

procedure TForm1.Button1Click(Sender: TObject);
var
SearchRec: TSearchRec;
begin
if FindFirst("c:", faAnyFile, SearchRec) = 0
then ShowMessage(SearchRec.Name)
else ShowMessage("no files");
if FindNext(SearchRec) = 0
then ShowMessage(SearchRec.Name)
else ShowMessage("no files");
if FindNext(SearchRec) = 0
then ShowMessage(SearchRec.Name)
else ShowMessage("no files");
if FindNext(SearchRec) = 0
then ShowMessage(SearchRec.Name)
else ShowMessage("no files");
end;


И результат выполнении - четыре сообщения
"no files".

Как получить первые четыре файла на диске?


 
Романов Р.В. ©   (2003-08-22 21:42) [1]

С Delphi идут примеры в каталоге Demos, а так же на этом сайте есть FAQ


 
Боян Георгиев   (2003-08-22 21:49) [2]

Я нашел ответ в Demos. Спасибо.
Путь надо быть c:\*.*
if FindFirst("c:\ *.*", faAnyFile, SearchRec) = 0
then ShowMessage(SearchRec.Name)
else ShowMessage("no files");


 
Camus ©   (2003-08-22 22:10) [3]

> Боян Георгиев

Не лучше ли вместо трех одинаковых операторов сделать цикл? И, конечно, не надо забывать о FindClose - иначе будет утечка памяти. А кроме того, Вы ведь ищете только файлы - так зачем же Вам еще и каталоги, и метка диска?

procedure TForm1.Button1Click(Sender: TObject);
const
Flags = faAnyFile and not (faVolumeID or faDirectory);
var
SearchRec: TSearchRec;
i: integer;
begin
i := 0;
if FindFirst("C:\*.*", Flags, SearchRec) = 0 then
try
repeat
Inc(i);
ShowMessage(Format("i=%d, %s", [i, SearchRec.Name]))
until (i = 4) or (FindNext(SearchRec) <> 0)
finally
FindClose(SearchRec)
end
else ShowMessage("No files")
end;



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.017 c
1-10818
AkaSaint
2003-08-21 11:59
2003.09.04
if и порядок выполнения условий, разделенных or


4-11013
Nick Denry
2003-07-05 20:49
2003.09.04
9x и wm_devicechange. в SDK написано -нет такой мессаги в 9x


1-10819
BlackTiger
2003-08-21 13:05
2003.09.04
Помогите побороть Automation-сервер! Очень нужно!


14-10922
Guchie
2003-08-17 22:14
2003.09.04
Что с RSDN.RU ??? У меня не заходит?


14-10867
xn0bys
2003-08-15 13:38
2003.09.04
Как обойти файрвол из нутрёв?




   Наверх