Italia
Fonte/ Codesnippets

File Komplexen Unterordnern Verzeichnisstrukturen

 

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()).
KompilierenMarkierenSeparieren
Declare 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 circa 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 .
 
05.12.2005  
 



Das das [-Zeichen auch in File 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.
 
05.12.2005  
 




Michael
Dell
Vielleicht wäre ein AddFolders per 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.
 
12.09.2006  
 



Wäre schön.
 
12.09.2006  
 




RGH
[quote:dabfe1781c=iF]Das das [-Zeichen auch in File 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-File-Auswahldialoge zeigten demzufolge die eckigen Klammern.) Damals durfte dieses Zeichen naturalmente 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.

Saluto
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 per 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 per 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.
 
12.09.2006  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

13.469 Views

Untitledvor 0 min.
Member 862464122.04.2024
Michael Borowiak17.11.2014
Klaus Ernst26.02.2014
Ernst17.04.2013
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie