Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa FindFirst funkcijom.

[es] :: C/C++ programiranje :: Problem sa FindFirst funkcijom.

[ Pregleda: 1842 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

maximus_1
Max Maximus

Član broj: 46848
Poruke: 277
193.198.27.*



Profil

icon Problem sa FindFirst funkcijom.08.10.2006. u 15:40 - pre 213 meseci
Napisao sam funkciju koja mi ubaciva extenzije u ListBox. Kada odaberem folder c:\ onda je sve ok ali ako odaberem folder npr. c:\Windows onda mi ne ubaci niti jednu funkciju. Evo funkcije:

Code:
BOOL __fastcall TfrmMain::Fill_lstExtensions(TListBox *lst, String Directory) {
    lst->Clear();
    TSearchRec file;
    BOOL AlreadyExists = FALSE;

    if (FindFirst(Directory + "*.*", faAnyFile, file) == 0) {
        do {
            AlreadyExists = FALSE;
            if (!(file.Attr & faDirectory) > 0) {
                for (int i = 0; i < lst->Items->Count; i++) {
                    if (lst->Items->operator [](i) == ExtractFileExt(file.Name)) {
                        AlreadyExists = TRUE;
                        break;
                    }
                }
                if (!AlreadyExists) {
                    lst->Items->Add(ExtractFileExt(file.Name));
                }
            } else {
                for (int i = 0; i < lst->Items->Count; i++) {
                    if (lst->Items->operator [](i) == ExtractFileExt(file.Name)) {
                        AlreadyExists = TRUE;
                        break;
                    }
                }
            }
        } while (FindNext(file) == 0);
        FindClose (&file);
    }
    return TRUE;
}

 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
89.216.235.*

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Problem sa FindFirst funkcijom.08.10.2006. u 17:24 - pre 213 meseci
Verovatno je problem do toga kako prosleđuješ "String Directory" argument.

Bitno je da bude u obliku X:\Folder\*.*

pa ako je kod tebe: C:\Windows*.*
...onda verovatno nece raditi.


Pogledaj ovde:
http://www.elitesecurity.org/t176155-0#1144651

P.S.

Takodje, TListBox::Strings (ako se ne varam) ima Sorted i Duplicates property-je
koji ti mogu rešiti problem pronalayenja duplikata.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
89.216.236.*

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Problem sa FindFirst funkcijom.08.10.2006. u 18:00 - pre 213 meseci
Proverio sam, morash da dodaš \ nakon foldera.

Postoji VCL funkcija: IncludeTrailingBackslash()

koj mozes iskoristiti kao:

IncludeTrailingBackslash( Directory )


... i ona ce ti sigurno postaviti \ ako treba.
 
Odgovor na temu

maximus_1
Max Maximus

Član broj: 46848
Poruke: 277
193.198.27.*



Profil

icon Re: Problem sa FindFirst funkcijom.08.10.2006. u 18:11 - pre 213 meseci
Koja j euopće razlika između Stringa i AnsiStringa?
 
Odgovor na temu

maximus_1
Max Maximus

Član broj: 46848
Poruke: 277
193.198.27.*



Profil

icon Re: Problem sa FindFirst funkcijom.08.10.2006. u 18:14 - pre 213 meseci
Bio sam dodao samo jedan pa nije radilo. Tek sam kasnije skužio da sam se zeznuo jer idu dva \\ pa će biti: Directory + "\\*.*".
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
89.216.236.*

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Problem sa FindFirst funkcijom.08.10.2006. u 19:02 - pre 213 meseci
String je typedef za AnsiString.

 
Odgovor na temu

maximus_1
Max Maximus

Član broj: 46848
Poruke: 277
193.198.27.*



Profil

icon Re: Problem sa FindFirst funkcijom.09.10.2006. u 15:42 - pre 213 meseci
Ok, hvala
 
Odgovor na temu

[es] :: C/C++ programiranje :: Problem sa FindFirst funkcijom.

[ Pregleda: 1842 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.