Avatar billede loke-liscom Nybegynder
29. august 2002 - 15:07 Der er 8 kommentarer og
1 løsning

findfirst....?

i denne linie "if findfirst(path+'*',$10,sr) <> 0 then" hvorfor finder den også filer?

procedure TForm1.test(path : string);
var
  sr :  TSearchRec;
  DirList : array of string;
begin
  if findfirst(path+'*',$10,sr) <> 0 then memo1.lines.add('Error')
  else
  repeat
    if (sr.Name <> '.') and (sr.Name <> '..') and (sr.Attr and $10 = $10) then
    begin
      memo1.lines.add(path+sr.Name);
      test(path+sr.Name+'/');
    end;
  until FindNext(sr) <> 0;
  findclose(sr);
end;
Avatar billede borrisholt Novice
29. august 2002 - 15:14 #1
Hold op med at bruge de underlige tal brug faAnyfile, FaDirectory etc i stedet ...

Jens B
Avatar billede zimp Nybegynder
29. august 2002 - 15:40 #2
FindFirst/FindNext finder altid alle almindelige filer. De flag du sætter fortæller hvad der skal findes UD OVER filerne. Du er nødt til at teste på alle fundne om det er et directory.

Og gør som Borrisholt siger, det er meget vigtigt at bruge navngivne konstanter, ellers bliver din kode ulæselig når du ikke har set på den et stykke tid.
Avatar billede hermandsen Juniormester
29. august 2002 - 15:46 #3
>>loke-liscom
Ellers så hop ind på www.pythia.dk under Komponenter mm. De har en ThreadSearch som er rimelig nem at gå til... :)
Avatar billede borrisholt Novice
29. august 2002 - 15:52 #4
prøv det her :

procedure GetDirsList(const Path : String; List : TStringList);
var
  SearchRec : TSearchRec;
  Res : Integer;
begin
  Res := FindFirst(Path, faDirectory, SearchRec);
  while res = 0 do
  begin
    if (SearchRec.Name[1] <> '.') and (SearchRec.Attr and faDirectory > 0) then
      List.Add(SearchRec.Name);
    Res := FindNext(SearchRec);
  end;
  FindClose(SearchRec);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  List : TStringList;
begin
  List := TStringList.Create;
  GetDirsList('C:\*.*', List);
  Memo1.Lines.Assign(List);
  FreeAndNil(list);
end;
Avatar billede loke-liscom Nybegynder
29. august 2002 - 16:40 #5
>FindFirst/FindNext finder altid alle almindelige filer. De flag du sætter
>fortæller hvad der skal findes UD OVER filerne.

Det var egentlig zimp der svarrede på mit spørgsmår så hvad med at du opretter et svar?

Og alle i andre tak for jeres svar...
Avatar billede zimp Nybegynder
29. august 2002 - 16:43 #6
Sure
Avatar billede borrisholt Novice
30. august 2002 - 08:05 #7
loke >>> ?

Jens B
Avatar billede loke-liscom Nybegynder
30. august 2002 - 18:34 #8
Ja, hvad er det Jens B?
Avatar billede loke-liscom Nybegynder
01. september 2002 - 16:04 #9
Ville du have haft nogle af pointene Jens B?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester