[ maximus_1 @ 08.10.2006. 15:40 ] @
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;
}

[ X Files @ 08.10.2006. 17:24 ] @
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.
[ X Files @ 08.10.2006. 18:00 ] @
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.
[ maximus_1 @ 08.10.2006. 18:11 ] @
Koja j euopće razlika između Stringa i AnsiStringa?
[ maximus_1 @ 08.10.2006. 18:14 ] @
Bio sam dodao samo jedan pa nije radilo. Tek sam kasnije skužio da sam se zeznuo jer idu dva \\ pa će biti: Directory + "\\*.*".
[ X Files @ 08.10.2006. 19:02 ] @
String je typedef za AnsiString.

[ maximus_1 @ 09.10.2006. 15:42 ] @
Ok, hvala