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

Вниз

Подскажите, плиз как искать папки   Найти похожие ветки 

 
Алексей   (2004-06-22 01:35) [0]

Когда я использую FindFirst с атрибутом faDirectory, то находятся не только директории, но и файлы, а файлы мне не нужны. Как это можно сделать


 
Игорь   (2004-06-22 07:26) [1]

Нужно делать проверку. Например

var
SR:TSearchRec;

begin
if FindFirst("c*.*",faDirectory,SR) = 0 then
repeat
if Sr.Attr = faDirectory then чего-то делаем...
until FindNext(SR) <> 0;
FindClose(SR);
end;

Без этого не обойтись.


 
Игорь   (2004-06-22 07:29) [2]

Я сам недавно с такой же проблемой столкнулся


 
MBo ©   (2004-06-22 07:35) [3]

>if Sr.Attr = faDirectory
это некорректная проверка. см. FAQ по findfirst


 
Игорь   (2004-06-22 07:40) [4]

ну можно так:
if (SR.Attr and faDirectory) = srAttr then ...


 
Anatoly Podgoretsky ©   (2004-06-22 09:16) [5]

Игорь   (22.06.04 07:40) [4]
Точно такая же не корректная проверка. см. FAQ по findfirst


 
TUser ©   (2004-06-22 09:37) [6]

Да вообще - проще из справки скопировать.


 
TASADAR   (2004-06-23 09:03) [7]


function TForm1.FindFolders (Path: string): boolean;
var
 F: TSearchRec;
 Attr: Integer;
begin
 Result := false;
 Attr := faDirectory + faReadOnly + faHidden + faSysFile + faArchive;
 FindFirst(Path, Attr, F);

 if F.name <> "" then
 begin
   if (F.name <> "..") and (F.name <> ".") and ((F.Attr = 16) or (F.Attr = 17)
   or (F.Attr = 18) or (F.Attr = 48) or (F.Attr = 51) or (F.Attr = 19)
   or (F.Attr = 49) or (F.Attr = 50)) then
      begin
        // что-то делаю
        Result := True;
      end
   else
      begin
        while FindNext(F) = 0 do
          begin
            if (F.name <> "..") and (F.name <> ".") and ((F.Attr = 16) or (F.Attr = 17)
            or (F.Attr = 18) or (F.Attr = 48) or (F.Attr = 51) or (F.Attr = 19)
            or (F.Attr = 49) or (F.Attr = 50)) then
               begin
                 // что-то делаю
                 Inc(i1);
               end;
          end
      end;
 end;
 FindClose(F);
end;



 
Anatoly Podgoretsky ©   (2004-06-23 11:35) [8]

Ужасы нашего городка.


 
alex_shpak   (2004-06-23 13:48) [9]

По-моему, вместо (F.Attr =...)or(F.Attr=...)or ... нужно писать (F.Attr and faDirectory)<>0. Так сказано в help"е по TSearchRec и так проще.



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

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

Наверх




Память: 0.48 MB
Время: 0.047 c
3-1087254139
Older22
2004-06-15 03:02
2004.07.11
Поиск подстроки в строкие для поля БД


3-1087206003
EXE
2004-06-14 13:40
2004.07.11
Возможно ли мастера сохранение формы в базу MSSql


1-1088159389
Helpme
2004-06-25 14:29
2004.07.11
CreateProcess


6-1084736475
_man
2004-05-16 23:41
2004.07.11
WOL


8-1082696342
_newver_
2004-04-23 08:59
2004.07.11
DirectShow