ExamineDirectory mit mehreren Pattern ??

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

ExamineDirectory mit mehreren Pattern ??

Beitrag von nco2k »

guten morgen community,

gibt es eine möglichkeit bei ExamineDirectory() mehrere pattern anzugeben, so dass z.b. nur *.bmp und *.mp3 dateien aufgelistet werden, oder muss ich *.* angeben und jede einzelne datei manuel überprüfen ??

vielen dank im voraus und guten rutsch ins neue jahr!

c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
walker
Beiträge: 278
Registriert: 29.08.2004 18:39
Wohnort: Bayern

Re: ExamineDirectory mit mehreren Pattern ??

Beitrag von walker »

nco2k hat geschrieben:
oder muss ich *.* angeben und jede einzelne datei manuel überprüfen ??
...leider ja...
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

schade. :(

naja halb so schlimm, trotzdem danke für die antwort. :)

wünsch dir noch einen guten rutsch ins neue jahr.

c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

Ich habe Fred aufgrund dieses Threads mal vorgeschlagen, den Befehl ExamineDirectory() so zu erweitern, dass mehrere Pattern (z.B. ".bmp|.gif") als Parameter übergeben werden können.

Er findet die Idee gut und zieht eine Umsetzung in Betracht. :)
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

das erspart dann wohl einiges an schreibarbeit und sollte zudem noch schneller sein, danke andre! :allright:

c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
PAMKKKKK
Beiträge: 321
Registriert: 21.04.2005 22:08
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von PAMKKKKK »

Na auf die Schnelle....

Um nicht das Directory mehrmahls mit jedem Pattern durchsuchen zu müssen:

1. Erstell dir eine (LinkedList = LiLi) mit allen Dateien (und ihren Pfaden)

2. durchsuche die LiLi nach den Pattern und kopier das gefundenen LiLi-Element in eine zweite LiLi

3. nutze als ergebnis die zweite LiLi

4. leere beide LiLis um Speicher (zu sparen)
Wir Schreiben ein PureBasic Buch.
Auch du kannst mitmachen!
http://www.purearea.net/pb/english/pure ... :Main_Page
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

@PAMKKKKK
ist doch total umständlich, ich machs dann lieber so in etwa:

Code: Alles auswählen

If ExamineDirectory(0, "c:\", "*.*")
  
  Repeat
    
    FileType = NextDirectoryEntry()
    If FileType = 1
      FileName.s = DirectoryEntryName()
      If FileName
        FileExtension.s = LCase(GetExtensionPart(FileName))
        If FileExtension = "bmp" Or FileExtension = "mp3"
          Debug FileName
        EndIf
      EndIf
    EndIf
    
  Until FileType = 0 
  
EndIf
c ya,
nco2k
Zuletzt geändert von nco2k am 04.01.2006 13:26, insgesamt 1-mal geändert.
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

nco2k hat geschrieben:ich machs dann lieber so in etwa:
ACK, diese Methode würde ich auch bevorzugen.

allerdings:
nco2k hat geschrieben:

Code: Alles auswählen

FileExtension.s = GetExtensionPart(FileName)
mach um's GetExtensionPart() noch ein LCase(), damit Du auch wirklich alle Schreibarten berücksichtigst.

Grüße ... Kiffi
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

@Kiffi
ja stimmt, in meinem eigentlichen projekt habe ich auch ein LCase() eingebaut, aber in dem beispielcode hab ichs grad vergessen. :oops:

tortzdem danke für den hinweis. :)

c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
PAMKKKKK
Beiträge: 321
Registriert: 21.04.2005 22:08
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von PAMKKKKK »

Die Methode ist natürlich besser und schlanker!

(Wieder was gerlernt ) :)
Wir Schreiben ein PureBasic Buch.
Auch du kannst mitmachen!
http://www.purearea.net/pb/english/pure ... :Main_Page
Antworten