Funkcja FindFirst-- problem z wyszukiwaniem folderów.

0

var
SR : TSearchRec;
Znalezione : Integer;
begin
Znalezione := FindFirst('C:\Documents and Settings* * ', faDirectory, SR);
while Znalezione = 0 do
begin
MessageBox(Handle, PChar(SR.Name), 'Znalazłem', MB_OK);
Znalezione := FindNext(SR);
end;

Problem polega na tym, że zamiast wyświetlać mi nazwy tylko folderów to wyświetla mi jeszcze plik NowyDokumentTekstowy.txt, a przecież napisałem wyraźnie faDirectory. Co poradzicie??

0

Popraw

'C:\Documents and Settings\*.*' 

na 'C:\Documents and Settings*.'

0

Wielkie dzięki. A tu może troszeczkę z innej beczki

ConfigDat := PChar(UzytkownikGG + PChar(SR.Name) + '\Config.dat');
I wyświetla błąd operator not applicable to this operand type. Co tu niby ma być źle??

0
Dziadek napisał(a)

Wielkie dzięki. A tu może troszeczkę z innej beczki

ConfigDat := PChar(UzytkownikGG + PChar(SR.Name) + '\Config.dat');
I wyświetla błąd operator not applicable to this operand type. Co tu niby ma być źle??

To jeszcze zależy jaką zmienną jest ConfigDat. W każdym razie nie za bardzo widze sens dodawania do UzytkownikGG (zapewne string) wskaźnika PChar(SR.Name). Łączyć w ten sposób możesz tylko zmienne string i je dopiero ewentualnie rzutowac PChar-em.

0

Musisz dodać warunek:

if ((SR.Attr and faDirectory)=faDirectory) 
   and (SR.Name<>'.') and (SR.Name<>'..') then znaleziono

</delphi>
0

A gdybyśmy chcieli te wyszukane foldery przypisac do dynamicznie tworzonej tablicy? Jak można by to zrobic bo myślę nad tym i nie mogę sobie poradzic :(

0

ConfigDat := PChar(UzytkownikGG + PChar(SR.Name) + '\Config.dat');

Mam rozumieć, że UzytkownikGG jest zmienną typu string. Wtedy:

ConfigDat := PCHAR(UzytkownikGG + SR.Name + '\Config.dat');

Gdzie ConfigDat to jakaś zmienna typu PCHAR.</quote>

1 użytkowników online, w tym zalogowanych: 0, gości: 1