Unterordner einbeziehen in Suche....

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Jahaaa, danke für eure Mühen, ich habs mit eurer Hilfe jetzt geschafft das so hinzubekommen wie ichs wollte...
DANKE für Eure Hilfe, ihr habt mir echt geil geholfen..
Ich habs n bissl anders geschrieben, aber ich habs jetzt dafür auch alles kapiert-Kiffis Code hat mir geholfen wennsch ned mehr weiter wusste um meinen eigenen Ansatz fertig zu bekommen.
Im Grunde sind die beiden aber sehr gleich-aber ist auf meinem eigenen Mist gewachsen-und dadurch hab ich wieder viel gelernt :)

Gr33tz DerMarc

P.S.:
Für die dies interessiert-hier mein "eigener" (stolzbin) Code.

Code: Alles auswählen

Procedure Fill_ListIconGadget(Directory.s)
  Ordner = ExamineDirectory(#PB_Any,Directory,"*.*")   ;Alle Dateien Durchsuchen
  Debug Ordner 
  
  Repeat                             ;wird wiederholt, bis das Ende des Ordners erreicht ist
    Test = NextDirectoryEntry()      ;Test enspricht hiernach 1 oder 2-d.H., dass man daran erkent ob es ne Datei oder n Ordner ist.
    If Test = 1
      If GetExtensionPart(DirectoryEntryName()) = "mp3" Or GetExtensionPart(DirectoryEntryName()) = "MP3"  ;nur zur Liste hinzufügen, wenn die Dtei eine mp3 ist.
        AddGadgetItem(#Listicon_Stick,-1,DirectoryEntryName(),Image3)
      EndIf
      
    EndIf
    If Test = 2 And DirectoryEntryName() <> "." And DirectoryEntryName() <> ".."
      AddGadgetItem(#Listicon_Stick,-1,DirectoryEntryName(),Image4)
      NewDirectory.s = Directory + "/" + DirectoryEntryName() 
      Fill_ListIconGadget(NewDirectory)
      UseDirectory(Ordner)
    EndIf
    
    
  Until Test = 0
  
EndProcedure
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Okaber nun habsch noch ne letzte Frage :)

Wo bekommt man das aktuelle Windows Ordner Zeichen her-und wo das aktuelle MP3 Icon?

Hoffe das wird ned zu kompliziert.
Oder wie komme ich generell an die Icons der Shell32 ?

MFG
Marc
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

so auf den ersten Blick noch ein kleiner Verbesserungsvorschlag:

Wenn Du diese Zeile verwendest:
Tafkadasom2k5 hat geschrieben:

Code: Alles auswählen

If GetExtensionPart(DirectoryEntryName()) = "mp3" Or GetExtensionPart(DirectoryEntryName()) = "MP3"  ;nur zur Liste hinzufügen, wenn die Dtei eine mp3 ist.
... dann gehen Dir "mP3" und "Mp3" - Dateien durch die Lappen.

Mit folgender Zeile ermittelst Du alle 'MP3' unabhängig von der Schreibweise:

Code: Alles auswählen

If LCase(GetExtensionPart(DirectoryEntryName())) = "mp3" ;nur zur Liste hinzufügen, wenn die Dtei eine mp3 ist.
Grüße ... Kiffi
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Hey Danke, gute Idee!
-Jetzt nur noch die Frage mit den Icons...

Wie komme ich mit PB an die Windows Shell32 Icons? Oder an das "aktuelle" PC-MP3 Logo?

Merci im Vorraus,
Der Marc
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> Oder an das "aktuelle" PC-MP3 Logo?

ich habe mal etwas zusammengebastelt:

Code: Alles auswählen

Structure SHELLICONLIST 
  hLarge.l 
  hSmall.l 
EndStructure 

myIcon.SHELLICONLIST
shInfo.SHFILEINFO  

MP3File$ = [Hier kommt der Pfad und Name einer real existierenden MP3-Datei hin]
 
SHGETFILEINFO_(MP3File$,FILE_ATTRIBUTE_NORMAL,@shInfo,SizeOf(SHFILEINFO),#SHGFI_USEFILEATTRIBUTES|#SHGFI_ICON) 

myIcon\hLarge=shInfo\hIcon 

SHGETFILEINFO_(MP3File$,FILE_ATTRIBUTE_NORMAL,@shInfo,SizeOf(SHFILEINFO),#SHGFI_USEFILEATTRIBUTES|#SHGFI_ICON|#SHGFI_SMALLICON) 

myIcon\hSmall=shInfo\hIcon 

Debug myIcon\hSmall
Debug myIcon\hLarge

Enumeration
  #frmIconTest
  #imgIconLarge
  #imgIconSmall
EndEnumeration

OpenWindow(#frmIconTest,0,0,100,100,#PB_Window_ScreenCentered|#PB_Window_SystemMenu,"")
CreateGadgetList(WindowID(#frmIconTest))
ImageGadget(#imgIconLarge,  0,0,32,32,myIcon\hLarge, #PB_Image_Border)
ImageGadget(#imgIconSmall, 40,0,32,32,myIcon\hSmall, #PB_Image_Border)

Repeat
  
Until WaitWindowEvent() = #PB_Event_CloseWindow

If myIcon\hLarge<>0
  DestroyIcon_(myIcon\hLarge) 
EndIf 
If myIcon\hSmall<>0
  DestroyIcon_(myIcon\hSmall) 
EndIf
Grüße ... Kiffi
Antworten