Einlesen Von Ordnern Borland C++
#1
geschrieben 03. Mai 2006 - 09:52
ich möchte gerne in meinem Prgram nicht nur einzelne Dateien, sondern eine bestimmte Sorte von Dateien aus einem Ordner einlesen.und nicht jede Datei einzeln.
Beispiel: ich möcht aus einem Ordner nur Mp3 Dateien auslesen und den Namen der Datei dann in einer Memo kompnente anzeigen
hab keinen Plan wie man ganze Ordner einlesen kann.
vielleicht kann mir ja jemand helfen
gruß gewup
Anzeige
#2
geschrieben 03. Mai 2006 - 14:02
hier findest du ein sehr gutes Tutorial (mit Source-Code), hat mir damals auch sehr geholfen:
Arbeiten mit Verzeichnissen
Ist allerdings Englisch, ist hoffentlich kein Problem.
#3
geschrieben 30. Mai 2006 - 13:14
ich hab mal rumgeforscht und hab folgendes gefunden
habe mir gedacht dass dies irgendwie vorprogramiert ist, so wie die opendialog komponente vom BorlandBuilder
Weiß jemand wie man darauf zugreifen kann?(mit opendialog funktioniert es leider nicht!!)
vielleicht kann mir ja jemand helfen....
gruß gewup
#4
geschrieben 30. Mai 2006 - 13:25
Dieser Beitrag wurde von ThreeM bearbeitet: 30. Mai 2006 - 13:27
#5
geschrieben 30. Mai 2006 - 13:38
steht eigentlich alles in dem Link, den ich gepostet hatte. Die Funktion "SHBrowseForFolder" in Verbindung mit dem "BROWSEINFO" struct tut doch genau das, was du willst.
#6
geschrieben 30. Mai 2006 - 13:39
Danke
#8
geschrieben 28. Juni 2006 - 13:13
wenn ich die Klasse
<Shlobj.h>
einfüge, kommt bei mir folgender Fehler:
Zitat
[C++ Fehler] Shlobj.h(1936): E2238 Bezeichner 'FOLDERSETTINGS' mehrfach deklariert
[C++ Fehler] Shlobj.h(3717): E2238 Bezeichner 'DESKBANDINFO' mehrfach deklariert
[C++ Fehler] Shlobj.h(4808): E2238 Bezeichner 'SHELLFLAGSTATE' mehrfach deklariert
[C++ Fehler] Unit1.cpp(39): E2268 Aufruf der undefinierten Funktion 'SearchFolder'
Das sind ja fehler in der Klasse selber oder mache ich etwas Falsch?
thx gruß
#9
geschrieben 29. Juni 2006 - 16:59
der Fehler liegt nicht in shlobj.h (was auch keine Klasse ist, sondern nur ein Header). Die genanntent Symbole sind, vermutlich wegen eines anderen Imports (windows.h ?) doppelt definiert, deswegen zickt der C++-Builder rum. Füge mal
NO_WIN32_LEAN_AND_MEAN
zu den Projekteigenschaften hinzu (ist, glaube ich, unter Projekt > Optionen > Verzeichnisse und Bedingungen > Bedingungen zu finden).
Alternativ gehts auch direkt im Code mit
#define NO_WIN32_LEAN_AND_MEAN
Das musst du dann VOR die #include-Anweisungen setzen!
#10
geschrieben 04. Juli 2006 - 13:49
danke für den Tipp, jetzt schluckt er es.
Dieser Beitrag wurde von gewup bearbeitet: 04. Juli 2006 - 14:10
#11
geschrieben 04. Juli 2006 - 15:34
wird diese Funktion nur vom borlandbuilder nicht erkannt oder ist dies ein schwerwiegenderes Problem?
sprintf( path, "%s\\%s", path, FindFileData.cFileName );
SendMessage( m_listbox_hwnd, LB_ADDSTRING, 0, path );
Zitat
[C++ Fehler] Ordner.cpp(53): E2451 Undefiniertes Symbol 'm_listbox_hwnd'
[C++ Fehler] Ordner.cpp(53): E2034 Konvertierung von 'char *' nach 'long' nicht möglich
[C++ Fehler] Ordner.cpp(53): E2342 Keine Übereinstimmung des Typs beim Parameter 'lParam' ('long' erwartet, 'char *' erhalten)
was kann das sein?
gruß gewup
#12
geschrieben 04. Juli 2006 - 23:24
also: sprintf gehört zur normalen C-Api, die Funktion sollte eigentlich bekannt sein. Vielleicht den include von <cstdio> vergessen?
Die anderen beiden Fehler: (m_listbox_hwnd an der Stelle undefiniert, path nicht vom Typ long) Da musst du mal gucken, was da schief läuft. Oder du hängst deinen (vollständigen) Code hier mal ran, dann werf' ich 'nen Blick drauf.
#13
geschrieben 05. Juli 2006 - 09:09
jetzt funktioniert alles, ich schreibe die dateien aus einem bestimmten ordner in eine ListBox ein.habe stdio.h vergessen
möchte jetzt aber nur mp3, wma und wav drinstehen haben, der rest interesiert mich nicht.
an welcher stelle wäre eine solche fallunterscheidung sinnvoll. und wie könnte man das jetzt anstellen?
gruß gewup
#14
geschrieben 05. Juli 2006 - 10:07
also, nachdem du den einzulesenden Pfad hast, kann man ja mit CFileFind gut über die Dateien iterieren. Gute Beispiele gibbet z.B. hier.
An den WildCard-String müsstest du dann halt deine Endungen ranhängen, also *.mp3 und *.wav usw.

Hilfe
Neues Thema
Antworten
Nach oben


