| |
|
|
Peter Mallow | Diese Prozedure sucht nach einer Suchmaske in einen beliebigen Ordner. Unterordner werden Dabei einbezogen.
Zu diesem Zweck gibt es zwar schon den Befehl AddFiles, jedoch ist folgende Variante etwas variabler und arbeitet auch bei tiefen Verschaltelungen. Leider ist die Prozedure etwas langsam in reinen Profan, aber vielleicht kann sie ja jemand in Assembler schreiben oder verbessern. Schneller arbeitet die Prozedure, wenn die Listbox versteckt wird (HideWindow()). KompilierenMarkierenSeparierenDeclare Listbox%
Proc ListFolder
Parameters LBox%,Dir$,Filter$,Level%
Declare String$,File$,c%,g%
Level 0 = Nur den Hauptordner durchsuchen (Unterordner werden gelistet)
Level 1 = Nur den Hauptordner durchsuchen (Unterordner werden nicht gelistet)
Level 2 = Alles durchsuchen, samt Unterordner
Beispiel: Print @ListFolder(Listbox%,"C:Programme","*.exe|*.bat",2)
Proc Einlesen
Parameters Dir$
Declare i%,j%,len%
ChDir Dir$
File$ = @FindFirst$("*")
i% = 0
While File$ <> ""
len% = @Len(File$)
If (File$ <> "[.]") And (File$ <> "[..]")
If (@InStr("[",File$) = 1) And (@InStr("]",File$) = len%)
String$ = @Translate$(File$,"[","")
String$ = @Translate$(String$,"]","")
Inc i%
@AddString(LBox%,Dir$+""+String$)
Else
j% = 1
While @SubStr$(Filter$,j%,"|") <> ""
If @InStr(@SubStr$(Filter$,j%,"|"),File$) = (len% - @Len(@SubStr$(Filter$,j%,"|"))+1)
Inc i%
@AddString(LBox%,Dir$+""+File$)
break
EndIf
Inc j%
WEnd
EndIf
EndIf
File$ = @FindNext$()
WEnd
g% = g%+i%
EndProc
Filter$ = @Translate$(Filter$,"*","")
Einlesen Dir$
If Level%
While c% < g%
String$ = @GetString$(LBox%,c%)
If @TestBit(@GetFAttr(String$),4) Ordner finden
@DeleteString(LBox%,c%)
Dec g%
Case Level% = 2: Einlesen String$ Ordner einlesen
Else
Inc c%
EndIf
WEnd
EndIf
Return g%
EndProc
Cls
UseFont "MS Sans Serif",15,6,0,0,0
SetDialogFont 1
Listbox% = @Create("ListBox",%HWnd,"",0,50,@Width(%HWnd)-5,@Height(%HWnd)-55)
Print @Str$(@ListFolder(Listbox%,"C:Programme","*.exe|*.bat",2))+" Dateien gelistet"
WaitInput
End
|
|
|
| WinXP Pro SP2, XProfan 9 + XPSE AMD Athlon 64 X2 3800 | 04.12.2005 ▲ |
|
|
|
|
Don Bubu | tja,kollege da muss ich dich leider entäuschen sowas hab ich auch schonmal in profan 5.0 geschrieben. funtzt an sich auch ganz gut nur ... die abfrage mit dem [ kannst du haken. nachdem ich grössere ordner dursucht hatte , wunderte ich mich immer wieder über den unterschied warum windows mehr datein und ordner gefunden hatte als mein prg.nach längeren tests und mach und tu hab ichs dann gefunden. es gab dateien die ebenfalls diese klammer [ benutzten und somit dann als ordner angesehn wurden. also wird das so nix ^^ würd da wohl eher auf die winapi ausweichen . |
|
|
| |
|
|
|
| Das das [-Zeichen auch in Dateien vorkommen kann hatte ich Roland schon geschrieben - weshalb ich das [-Zeichen fürs Ordnerattribut auch völlig fehl am Platz finde.
Peter müsste seine [-Abfrage mit DirExists erweitern.
Salve. |
|
|
| |
|
|
|
Michael Dell | Vielleicht wäre ein AddFolders für die nächste Xprofan Version angebracht? |
|
|
| Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 12.09.2006 ▲ |
|
|
|
|
| Ja das die Zeichen [|] leider auch in Namen vorkommen könnten merkte ich auch schon an. Ich kann ja neben der Wildcards.Dll schnell ne Addfiles.Dll bauen. |
|
|
| |
|
|
|
| |
|
| |
|
|
|
RGH | [quote:dabfe1781c=iF]Das das [-Zeichen auch in Dateien vorkommen kann hatte ich Roland schon geschrieben - weshalb ich das [-Zeichen fürs Ordnerattribut auch völlig fehl am Platz finde.
Peter müsste seine [-Abfrage mit DirExists erweitern.[/quote:dabfe1781c] Das ist ja auch einer der Hauptgründe, warum ich DirExists() eingebaut habe. Die Einklammerung von Verzerichnisnamen in eckigen Klammern war unter Windows 3.x vom System her vorgegeben. (Alle Win 3.1-Datei-Auswahldialoge zeigten demzufolge die eckigen Klammern.) Damals durfte dieses Zeichen natürlich nicht in den 8.3-Dateinamen vorkommen. Aus Kompatibilitätsgründen wurde das dann auch bei 32-Bit-Versionen von XProfan beibehalten. Also wenn ein Name von [ und ] eingeschlossen ist, sollte man sicherheitshalber überprüfen, ob es ein Verzeichnis ist oder nicht.
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 12.09.2006 ▲ |
|
|
|
|
Jörg Sellmeyer | [quote:97eb00a4a9=Michael Dell]Vielleicht wäre ein AddFolders für die nächste Xprofan Version angebracht?[/quote:97eb00a4a9] Sowas habe ich mir schon seit mindestens 2-3 Jahren gewünscht!! (Leider dieses Mal nicht daran gedacht es auf die Wunschliste zu schreiben) |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 12.09.2006 ▲ |
|
|
|
|
| [quote:e37e54c635=Jörg Sellmeyer][quote:e37e54c635=Michael Dell]Vielleicht wäre ein AddFolders für die nächste Xprofan Version angebracht?[/quote:e37e54c635] Sowas habe ich mir schon seit mindestens 2-3 Jahren gewünscht!! (Leider dieses Mal nicht daran gedacht es auf die Wunschliste zu schreiben)[/quote:e37e54c635] Schau mal hab grad ne Addfiles.Dll [...] gepostet die hat diese Funktion intus. |
|
|
| |
|
|