Aktuelle Zeit: 01.04.2020 03:49

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 20 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Verzeichnis mit allen Unterverzeichnissen scannen? (Geklärt)
BeitragVerfasst: 17.05.2007 16:33 
Offline
Benutzeravatar

Registriert: 08.04.2006 16:00
Wohnort: Heidekreis
Ich habe die Suche benutzt, aber nichts gefunden.

Verzeichnis mit allen Unterverzeichnissen scannen?

Ich möchte jede MP3 Datei (bzw. vielleicht auch WMA :roll: ) in eine Liste aufnehmen (LinkedList). Damit ich dann eine Abspielliste habe.

Beispiel: Winamp bei der Medienbibliothek.

PS: Ich weiß, es wird nervig, ich will auch mal einen Player machen. Aber eher nur für mich, soll cool aussehen und das nötigste mitbringen. In die Programm-Feedback Sektion wird er höchstwahrscheinlich nicht kommen. :wink:

_________________
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!


Zuletzt geändert von Vermilion am 17.05.2007 17:34, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 17.05.2007 16:38 
Offline
Benutzeravatar

Registriert: 01.10.2005 13:15
Ich schlage vor, dass du dir bitte den nötigen Code selbst raussuchst. Es gibt genügend Codes, die rekursiv suchen und diese sind können innerhalb von 60 Sekunden an deine Anforderungen angepasst werden. :twisted:

Also bitte...

_________________
PB 4.30
Code:
Macro Happy
 ;-)
EndMacro

Happy End


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 17.05.2007 16:45 
Offline
Benutzeravatar

Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
mmmm

das wurde doch erst gestern gefragt.

Frag mal Kiffi, der hat da was geschrieben.

Gruß, Folker :allright:

_________________
Kinder an die Macht http://scratch.mit.edu/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 17.05.2007 16:47 
Offline
Benutzeravatar

Registriert: 08.04.2006 16:00
Wohnort: Heidekreis
Achja, selber versucht habe ich es auch schon.

Ich habe aber nichts gefunden! Zumindest keinen verwendbaren Code. Entweder war es kein Code, oder nichts passendes. Ich brauche etwas wie das ExamineDiretory(), oder wie das hieß, mit dem Dateitypenfilter, bloß dass es auch die Unterverzeichnisse durchsucht! -.-

PS: Ich suchte mit folgenden Suchwörtern; Unterverzeichnis, Scannen durchsuchen, unterverzeichnisse, verzeichnis, ordner

_________________
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 17.05.2007 16:48 
Offline
Benutzeravatar

Registriert: 01.10.2005 13:15
Such mal mit "rekursiv"... :roll:

_________________
PB 4.30
Code:
Macro Happy
 ;-)
EndMacro

Happy End


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 17.05.2007 16:54 
Offline
Benutzeravatar

Registriert: 08.04.2006 16:00
Wohnort: Heidekreis
:oops: ´Mh, entschuldigung, "Rekursiv" ist ein Fremdwort für mich, kannte ich nicht...

@Xaby: Hoppla, wiedermal nichts mitgekriegt...

_________________
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 17.05.2007 17:08 
Offline
Benutzeravatar

Registriert: 01.10.2005 13:15
So, hier. Exklusiv für dich:

Code:
EnableExplicit

Procedure sucheMusikdateien(pfad.s, Liste.s(), typ.s="mp3,wma,wav")
   PathAddBackslash_(@pfad) ; Hängt Backslash an, falls nötig
   Protected dir=ExamineDirectory(#PB_Any, pfad, ""), n
   If dir
      While NextDirectoryEntry(dir)
         If DirectoryEntryType(dir) = #PB_DirectoryEntry_File
            For n=1 To CountString(typ, ",")+1
               If StringField(typ, n, ",") = LCase(GetExtensionPart(DirectoryEntryName(dir)))
                  AddElement(Liste())
                  Liste()=pfad+DirectoryEntryName(dir)
                  Break
               EndIf
            Next
            Continue
         ElseIf DirectoryEntryName(dir) <> "." And DirectoryEntryName(dir) <> ".."
            sucheMusikdateien(pfad+DirectoryEntryName(dir), Liste(), typ)
         EndIf
      Wend
      FinishDirectory(dir)
   EndIf
EndProcedure


NewList MeineMucke.s()
sucheMusikdateien("C:\", MeineMucke())



Debug StrQ(CountList(MeineMucke()))+" Dateien gefunden:"

ForEach MeineMucke()
   Debug MeineMucke()
Next


Übergib der Prozedur einfach eine LinkedList. Der Parameter 'typ' muss immer klein geschrieben werden und durch Komma getrennt!

_________________
PB 4.30
Code:
Macro Happy
 ;-)
EndMacro

Happy End


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 17.05.2007 17:16 
Offline
Benutzeravatar

Registriert: 08.04.2006 16:00
Wohnort: Heidekreis
:praise: Ich danke dir tausend mal! Ich habe zwar endlich durch "rekursiv" etwas gefunden, aber nicht begriffen.

Und wenn ich selber da nachdenke, wie ich so etwas machen soll, gibz einen HirnError. Da kann ich einfach nicht weiterdenken, man kann sich das so vorstellen, man fährt eine Straße mit unbekannt vielen Abzweigungen lang. Und man will wissen was an jedem Ende ist. Und wenn man dann mal da ist, wie man dann zurückkommt, konnte ich mir nie vorstellen. Weil man muss er st zur letzten Abzweigung zurück, und wenn dieses Oberverz. durchsucht ist, noch einen zurück, etc..

Ich habe bei der Sache einfach Denkabstürze... :oops:

_________________
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 17.05.2007 17:33 
Offline
Benutzeravatar

Registriert: 08.04.2006 16:00
Wohnort: Heidekreis
Das habe ich daraus gemacht :mrgreen: :

Code:
; PureBasic 4.00!

Procedure sucheMusikdateien(pfad.s, Liste.s(), typ.s="mp3,wma,wav")

   PathAddBackslash_(@pfad) ; Hängt Backslash an, falls nötig
   
   Protected dir=ExamineDirectory(#PB_Any, pfad, ""), n
   
   If dir
   
      While NextDirectoryEntry(dir)
     
         If DirectoryEntryType(dir) = #PB_DirectoryEntry_File
         
            For n=1 To CountString(typ, ",")+1
           
               If StringField(typ, n, ",") = LCase(GetExtensionPart(DirectoryEntryName(dir)))
                  AddElement(Liste())
                  Liste()=pfad+DirectoryEntryName(dir)
                  Break
               EndIf
               
            Next
           
            Continue
           
         ElseIf DirectoryEntryName(dir) <> "." And DirectoryEntryName(dir) <> ".."
         
            sucheMusikdateien(pfad+DirectoryEntryName(dir), Liste(), typ)
           
         EndIf
         
      Wend
     
      FinishDirectory(dir)
     
   EndIf
   
EndProcedure

NewList MeineMucke.s()

OpenWindow(0, 0, 0, 600, 400, "Musik", #PB_Window_SystemMenu)
  CreateGadgetList(WindowID(0))
    ButtonGadget(0, WindowWidth(0)-105, 5, 100, 20, "Auflisten")
    StringGadget(1,                  5, 5, 485, 20, "C:\")
    ListViewGadget(2,                5,30, 590, 365)
   
Repeat
 
  Event = WaitWindowEvent()
  Gadget= EventGadget()
 
  If Event = #PB_Event_Gadget
   
    If Gadget = 0
      sucheMusikdateien(GetGadgetText(1), MeineMucke())

      ForEach MeineMucke()
     
        AddGadgetItem(2, -1, MeineMucke())
       
      Next
     
      AddGadgetItem(2, -1, StrQ(CountList(MeineMucke()))+" Dateien gefunden")
     
    EndIf
   
  EndIf
 
Until Event = #PB_Event_CloseWindow
End

_________________
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 17.05.2007 17:41 
Offline
Benutzeravatar

Registriert: 01.10.2005 13:15
Vermilion hat geschrieben:
Und wenn man dann mal da ist, wie man dann zurückkommt, konnte ich mir nie vorstellen. Weil man muss er st zur letzten Abzweigung zurück, und wenn dieses Oberverz. durchsucht ist, noch einen zurück, etc..

Richtig. Du musst jeden Ordner, wo du reingehst auch wiede ruasgehen. Also jede Straße, in die du einbiegst, legst du den Rückwärtsgang ein und fährst wieder raus.
Weiter als bis zur Hauptstraße (hier C:\) kannst du aber nie zurück.

_________________
PB 4.30
Code:
Macro Happy
 ;-)
EndMacro

Happy End


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 20 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  
cron

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye