WinFuture-Forum.de: Einlesen Von Ordnern - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Einlesen Von Ordnern Borland C++


#1 Mitglied ist offline   gewup 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 08. März 06
  • Reputation: 0

geschrieben 03. Mai 2006 - 09:52

Servus Leute

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
0

Anzeige



#2 Mitglied ist offline   MNG 

  • Gruppe: aktive Mitglieder
  • Beiträge: 293
  • Beigetreten: 29. März 06
  • Reputation: 0

  geschrieben 03. Mai 2006 - 14:02

Moin,

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.
0

#3 Mitglied ist offline   gewup 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 08. März 06
  • Reputation: 0

geschrieben 30. Mai 2006 - 13:14

Hi Leute

ich hab mal rumgeforscht und hab folgendes gefunden

Angehängtes Bild: Ordner_einlesen.JPG

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
0

#4 Mitglied ist offline   ThreeM 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.493
  • Beigetreten: 22. Februar 06
  • Reputation: 0
  • Wohnort:Hamburg

geschrieben 30. Mai 2006 - 13:25

dir *.mp3 > mp3list.txt und die textdatei kannst dann ja auslesen wie du lustig bist...

Dieser Beitrag wurde von ThreeM bearbeitet: 30. Mai 2006 - 13:27

Chuck Norris kann auch bei Winfuture klein geschriebene Themen erstellen!
0

#5 Mitglied ist offline   MNG 

  • Gruppe: aktive Mitglieder
  • Beiträge: 293
  • Beigetreten: 29. März 06
  • Reputation: 0

geschrieben 30. Mai 2006 - 13:38

Moin,

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.
0

#6 Mitglied ist offline   CustomizerXP 

  • Gruppe: aktive Mitglieder
  • Beiträge: 189
  • Beigetreten: 20. August 04
  • Reputation: 0

geschrieben 30. Mai 2006 - 13:39

Kann vielleicht auch jemand von euch so ein Tool mal hier Online stellen? Oder per PM zukommen lassen?

Danke
0

#7 Mitglied ist offline   MNG 

  • Gruppe: aktive Mitglieder
  • Beiträge: 293
  • Beigetreten: 29. März 06
  • Reputation: 0

geschrieben 30. Mai 2006 - 13:49

Moin,

MSDN ist euer Freund: BrowseForFolder HowTo
0

#8 Mitglied ist offline   gewup 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 08. März 06
  • Reputation: 0

geschrieben 28. Juni 2006 - 13:13

Hi
wenn ich die Klasse
<Shlobj.h>

einfüge, kommt bei mir folgender Fehler:

Zitat

[C++ Fehler] Shlobj.h(1762): E2238 Bezeichner 'FVSHOWINFO' mehrfach deklariert
[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ß
0

#9 Mitglied ist offline   MNG 

  • Gruppe: aktive Mitglieder
  • Beiträge: 293
  • Beigetreten: 29. März 06
  • Reputation: 0

geschrieben 29. Juni 2006 - 16:59

Moin,

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!
0

#10 Mitglied ist offline   gewup 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 08. März 06
  • Reputation: 0

geschrieben 04. Juli 2006 - 13:49

Hi

danke für den Tipp, jetzt schluckt er es.

Dieser Beitrag wurde von gewup bearbeitet: 04. Juli 2006 - 14:10

0

#11 Mitglied ist offline   gewup 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 08. März 06
  • Reputation: 0

geschrieben 04. Juli 2006 - 15:34

Hi

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(38): E2268 Aufruf der undefinierten Funktion 'sprintf'
[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
0

#12 Mitglied ist offline   MNG 

  • Gruppe: aktive Mitglieder
  • Beiträge: 293
  • Beigetreten: 29. März 06
  • Reputation: 0

geschrieben 04. Juli 2006 - 23:24

Moin,

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.
0

#13 Mitglied ist offline   gewup 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 08. März 06
  • Reputation: 0

geschrieben 05. Juli 2006 - 09:09

Hi

jetzt funktioniert alles, ich schreibe die dateien aus einem bestimmten ordner in eine ListBox ein.habe stdio.h vergessen :smokin:

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
0

#14 Mitglied ist offline   MNG 

  • Gruppe: aktive Mitglieder
  • Beiträge: 293
  • Beigetreten: 29. März 06
  • Reputation: 0

geschrieben 05. Juli 2006 - 10:07

Moin,

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.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0