Dateien



  • Danke,

    aber das hilft mir trotz allem nicht, mein Problem, welches ich in meinem 2.Post geschrieben habe zu lösen....

    Wo mussich den Code einsetzen um die Dateien auch in der ListBox angezeigt zu bekommen....

    MfG



  • Ev. bei OnActivate des Formulars?

    oder bei OnCreate ?

    ???

    Oder Du machst einen Button dazu rein (so ist mein Beispiel)



  • Im Beispiel von DerAltenburger wird ein Memo verwendet. Vielleicht, aber wirklich nur vielleicht, kann man stattdessen auch eine ListBox nehmen.

    Und hier noch ein Bespiel wie man etwas in die ListBox bekommt:

    ListBox1->Items->Add("blah");
    


  • Linnea schrieb:

    Im Beispiel von DerAltenburger wird ein Memo verwendet. Vielleicht, aber wirklich nur vielleicht, kann man stattdessen auch eine ListBox nehmen.

    Das sieht doch dann ganz anders aus. Das geht so nicht !!!
    Solche Layout- Abweichung kann ich nicht akzeptieren.
    Auch wenn das ev., aber nur eventuell, funktionieren sollte



  • Linnea schrieb:

    Im Beispiel von DerAltenburger wird ein Memo verwendet. Vielleicht, aber wirklich nur vielleicht, kann man stattdessen auch eine ListBox nehmen.

    Und hier noch ein Bespiel wie man etwas in die ListBox bekommt:

    ListBox1->Items->Add("blah");
    

    Soweit bin ich auch, dieses "blah" sollte in meinem Fall eine gefundene Datei sein, müsst dann den Befehl in ne SChleife setzen bis er keine Datei mehr findet...

    nur müsste ich blah vorher irgendwo deklarieren und als Funktion für die Suche benutzen....

    @DerAltenburger: Ob OnActivate oder OnCreate müsste doch eig. egal sein. Ich drücke im Hauptmenü einen Button, dieser öffnet ein neues Formular auf dem dann eine Listbox die gefundenen Dateien mit der Endung .xy - die sich irgendwo auf einer der HDD's bzw. Partitionen befinden - ausgibt.... Ich müsste also alle vorhandenen Partitionen durchsuchen, was ich leider nicht schaffe... 😞 😕

    Vom Prinzip müsste das ganze dann so aussehen:
    Array (string, ...??[anzahl] [ergebnisse] in dem die Ergebnisse gespeichert werden bzw auch die anzahl der Ergebnisse //am besten und wenn möglich dynamisch
    Funktion suche(.???????????.); //speichert Ergebnisse im Array?!
    for (a=0, a-1=anzahl, a++)
    ListBox1->Items->Add(suche());

    Wäre echt super wenn mir einer von euch helfen könnte....

    MfG und thx für die Mühe



  • Hallo

    M4jestix schrieb:

    Linnea schrieb:

    Im Beispiel von DerAltenburger wird ein Memo verwendet. Vielleicht, aber wirklich nur vielleicht, kann man stattdessen auch eine ListBox nehmen.

    Und hier noch ein Bespiel wie man etwas in die ListBox bekommt:

    ListBox1->Items->Add("blah");
    

    Soweit bin ich auch, dieses "blah" sollte in meinem Fall eine gefundene Datei sein, müsst dann den Befehl in ne SChleife setzen bis er keine Datei mehr findet...

    nur müsste ich blah vorher irgendwo deklarieren und als Funktion für die Suche benutzen....

    So eine Schleife ist in dem Beispiel-Code doch schon vorhanden. 🙄 Ehrlich gesagt solltest du dir erstmal klarmachen was der Code eigentlich macht.

    bis bald
    akari



  • Hi akari,

    wollte nur ne Bestätigung, dass meine Denkweise bzw. des Grundprinzip richtig ist und ich vor lauter Überlegen nicht schon total falsch denke....

    Den Code von DerAltenburger hab ich schon verstanden, aber egal wo ich diesen - soweit mir möglich angepasst auf mein Problem - einfüge, bekomme ich nur eine leere Listbox wenn ich das Programmm starte..... Habe das ganze schon wie in meinem 2. Post als Quellcode für ListBox->Items->TSTring... eingegeben und auch schon direkt beim Aufruf der Form die die ListBox enthält....

    Beide Male meine leere Listbox....

    MfG



  • zeig doch mal die entsprechenden Stellen als Quellcode...



  • Habs jetzt mal mit folgendem Code geschafft, dass mir alle pdf-dateien im angegebenen Ordner in der ListBox angezeigt werden. 🙂

    [code]
    WIN32_FIND_DATA anz;
    HANDLE suche;
    
     suche = FindFirstFile("E:\\ebooks\\*.pdf",&anz);
    
    do
    {
    if (!((anz.cFileName[0]=='.')&&((anz.cFileName[1]=='.' && anz.cFileName[2]==0) ||
    anz.cFileName[1]==0) ) )
    {
    if (anz.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
    {
    ListBox1->Items->Add("Keine Dateien gefunden");
    }
    else
    {
    ListBox1->Items->Add(anz.cFileName);
    }
    }
    }
    while (FindNextFile(suche, &anz));
    FindClose(suche);
    [/code]
    

    Allerdings habe ich noch folgende Fragen, weil ich nun absolut aufm Schlauch steh 😞 😕 :

    1. Warum gibt mir die Zeile

    [code]
    ListBox1->Items->Add("Keine Dateien gefunden");
    

    [/code]
    nicht den Ausdruck zurück den ich haben will wenn die Dateien nicht vorhanden sind?

    2. Welchen Teil (von wo bis wo) muss ich wo einfügen, damit auch Unterverzeichnisse nach den Dateien durchsucht werden?

    MfG



  • Habe jetzt folgenden Code im fastcall der Form stehen, habe aber jetzt wieder eine leere ListBox....

    [code]
    WIN32_FIND_DATA anz;
    HANDLE suche;
    AnsiString helpstring;
    AnsiString uverz;
    AnsiString verz="E:\\";
    A:
    helpstring = verz + "*.pdf";
    
     suche = FindFirstFile(helpstring.c_str(),&anz);
     while ((suche != INVALID_HANDLE_VALUE) && (GetLastError() != ERROR_NO_MORE_FILES))
     {
     if(anz.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY && strcmp (anz.cFileName, ".")
     && strcmp (anz.cFileName,".."))
     {
     uverz = verz + anz.cFileName + "\\";
     ListBox1->Items->Add(anz.cFileName);
     verz=uverz;
     goto A;
     }
     else
     {
     ListBox1->Items->Add(anz.cFileName);
     }
     FindNextFile(suche, &anz);
     }
    FindClose(suche);
    

    [/code]

    Laut Debugger springt er mir beim ersten aufruf der while-Anweisung schon zu FindClose..... Weiss echt nicht mehr weiter 😞

    MfG


Anmelden zum Antworten