Français
Forum

Woran J'ai eu eigentlich gestern gearbeitet...

 

Michael
Wodrich
là je toujours plusieurs Projekte gleichzeitig am Wickel habe, peux déjà la fois cela chercher pour den letzten travailler un peu Zeit dans Anspruch prendre. Pour cette voulais je déjà toujours la fois quelque chose écrivons.

charge1000 listet qui zuletzt angefaßten 1000 Fichiers sur. pourquoi so viele? Weil Windows et im Hintergrund laufende Programme oui aussi Fichiers anfaßen, et qui volonté alle avec aufgelistet.

qui daran herumwurschteln voudrais - seulement trop: c'est Freeware.

qui Abbruch fonctionne encore jusqu'à zum Ende des justement bearbeiteten Verzeichnisses (so entsteht ne...aucune Speichermüll, weil FindClose ici greift).

un neuer Start löscht auparavant qui beiden Listboxen.

j'ai den Dialogue avec les ROC aufgebaut et de là qui Icônes pris.
KompilierenMarqueSéparation
 $P+
********************** HINWEISE ********************************
CODE ERZEUGT MIT ROKOS OBJECT CREATOR 4.2b
DATUM  25.02.2006
VERWENDETE PROFANVERSION IST 9.1-NT XPROFAN
CODE ERSTELLT UNTER WINDOWS XP
********************** DATEN ***********************************
PROJEKTNAME    Last1000
BESCHREIBUNG   Neueste Dateien auflisten
VERSION        1.00
AUTOR          Michael Wodrich
ERSTELLDATUM   25.02.2006
********************** ANMERKUNGEN *****************************
Dieses Programm listet die Dateien
(der letzten 10 Tage) und zeigt diese
in einer sortierten Listbox an.
Es werden maximal 1000 Dateien gezeigt.
Durch die Sortierung fallen alte Dateien
dabei heraus.
Wenn alles glatt läuft, dann läßt sich
dieses Programm jederzeit abbrechen.
*) "der letzten 10 Tage" habe ich mal herausgenommen
********************** QUELLCODE *******************************
Set("ErrorLevel",0)
Set("TrueColor",1)
Set("AutoPaint",2)
DEF GETSYSCOLOR(1) !"USER32","GetSysColor"
 $I C:PROFANLIBBILDBUTTON.INC (Für Bildbuttons/Iconbuttons)
Vertauschen der Ziffern (0 -> 9, 1 -> 8, 2 -> 7, ...)
führt zu absteigender Sortierung (alles außer Ziffern fällt hier weg)

Proc SortDesc

    Parameters dat$
    Declare B#,i%,j%,k%,erg$
    Dim B#,Len(dat$)+1
    String B#,0 = dat$
    j% = Len(dat$)

    While i% < j%

        k% = Byte(B#,i%)
        Byte B#,i% = If( (k% >= 47) and (k% <= 57),105 - k%, 46)
        Inc i%

    EndWhile

    erg$ = String$(B#,0)
    Dispose B#
    Return Translate$(erg$,".","")

EndProc

Zeile für die sortierte Listbox aufbereiten

Proc SortZeile

    Parameters Datei$
    Declare Zeile$

    If FileExists(Datei$)

        Zeile$ = SortDesc(GetFDate$(Datei$) + GetFTime$(Datei$)) +
        " " +
        GetFDate$(Datei$) +
        " " +
        Datei$

    EndIf

    Return Zeile$

EndProc

PROC DIALOG  ---------------------------------------------------------------------------

    Verzeichnisse werden hier zwischengelagert

    Proc Add_L

        Parameters x$
        Declare y$,i%
        i% = SendMessage(LB&,$01A2,-1,Addr(x$))

        If i% < 0

            AddString(LB&,x$)

        EndIf

    EndProc

    ...und nach dem Abruf auch wieder entfernt

    Proc Get_L

        Declare s$

        If GetCount(LB&,0) > 0

            s$ = GetString$(LB&,0)
            DeleteString(LB&,0)

        EndIf

        Return s$

    EndProc

    Hier wird die sortierte Listbox mit den Dateinamen gefüllt

    Proc Add_R

        Parameters x$
        Declare y$,i%
        y$ = SortZeile(x$)
        i% = SendMessage(SLB&,$01A2,-1,Addr(y$))

        If i% < 0

            AddString(SLB&,y$)
            SetText TEXT2&,"gefundene Dateien: "+Format$("#,##0",GetCount(SLB&))+Space$(10)

            If GetCount(SLB&) > 1000

                DeleteString(SLB&,1000)
                SetText TEXT2&,"gefundene Dateien: "+Format$("#,##0",GetCount(SLB&))+Space$(10)

            EndIf

        EndIf

    EndProc

    ein Plattenverzeichnis durcharbeiten

    Proc WholeSub

        Declare Datei$,V$
        ChDir Pfad$
        Case @Right$(Pfad$,1) = "" : Pfad$ = Del$(Pfad$,@Len(Pfad$),1)
        Let Datei$ = @Upper$(@FindFirst$("*.*"))

        WhileNot %IOResult

            If gestartet%

                If Datei$ <> ""

                    If @Left$(Datei$,1) = "["  ->ein Verzeichnis

                        Datei$ = @Mid$(Datei$,2,@Len(Datei$)-2)

                        IfNot (Datei$=".") Or (Datei$="..")

                            V$ = Pfad$ + "" + Datei$
                            Add_L( V$ )             ...merken

                        EndIf

                        Else                       ->eine Datei
                        V$ = Pfad$ + "" + Datei$
                        Add_R( V$ )             ...auflisten

                    EndIf

                EndIf

                ------

                If %PeekMessage  ...wenn eine Message anliegt

                    If %MWnd = DLG&  Ist die Message für mich???

                        -------
                        SetTimer 500
                        WAITINPUT  ja, holen
                        während der Dateisuche interessiert nur der Abbruch-Wunsch

                        If GETFOCUS(ICONBUTTON1&) ICONBUTTON (Abbruch)

                            SETFOCUS(DLG&)
                            Clear gestartet%  Arbeit einstellen
                            SendMessage(LB&,$0184,0,0)  Verzeichnis-Liste löschen

                        EndIf

                        KillTimer
                        -------

                    EndIf

                EndIf

                ------

            EndIf

            Let Datei$ = @Upper$(@FindNext$())

        EndWhile

    EndProc

    Vorarbeiten für ein ganzes Laufwerk

    Proc WholeDisk

        Parameters Lw$

        If gestartet%

            Declare Such$
            Pfad$ = @Upper$(Lw$)

            If Len(Pfad$) = 1

                Pfad$ = Pfad$ + ":"

            ElseIf Right$(Pfad$,1) = ":"

                Pfad$ = Pfad$ + ""

            ElseIf Right$(Pfad$,1) = ""

                Pfad$ = Left$(Pfad$,Len(Pfad$) - 1)

            EndIf

            If DirExists(Pfad$)  nicht vergessen (bei Wechselmedien wichtig)

                ChDir Pfad$
                Pfad$ = @GetDir$("@")
                Add_L( Pfad$ )
                Pfad$ = Get_L()

                While Pfad$ <> ""

                    WholeSub
                    Pfad$ = Get_L()

                EndWhile

            EndIf

        EndIf

    EndProc

    DECLARE DLG&, DIALOGENDE%
    DECLARE LB&, SLB&
    DECLARE TEXT1&, TEXT2&
    DECLARE ICONBUTTON1&, ICONBUTTON2&, ICONBUTTON3&
    Declare gestartet%
    WINDOWSTYLE 31
    DLG& = CREATE("DIALOG",%HWND,"Neueste Dateien zeigen",((%MAXX / 2) - (640 / 2)),((%MAXY / 2) - (480 / 2)), 640,480)
    USEFONT "MS Sans Serif",13,0,0,0,0
    SETDIALOGFONT 1
    LB& = CREATE("LISTBOX",DLG&,"LISTBOX",10,50,180,400)
    Create("Tooltip",DLG&,LB&,"Hier werden die noch zu bearbeitenden Verzeichnisse aufgelistet.")
    TEXT1& = CREATE("TEXT",DLG&,"zu bearbeitende Verzeichnisse:",10,20,150,20)
    TEXT2& = CREATE("TEXT",DLG&,"gefundene Dateien:",200,20,180,20)
    SLB& = CREATE("SORTEDLISTBOX",DLG&,"SORTEDLISTBOX",200,50,420,400)
    Create("Tooltip",DLG&,SLB&,"Hier stehen die gefundenen Dateien - jüngste oben.")
    ICONBUTTON "30","C:\PROFAN\ROCICON.DLL",DLG&,520,6,40,40
    LET ICONBUTTON1& = @&(0)
    Create("Tooltip",DLG&,ICONBUTTON1&,"Die Suche wird abgebrochen.")
    ICONBUTTON "18","C:\PROFAN\ROCICON.DLL",DLG&,570,6,40,40
    LET ICONBUTTON2& = @&(0)
    Create("Tooltip",DLG&,ICONBUTTON2&,"Dies ist der Ausgang - Auf Wiedersehen!")
    ICONBUTTON "52","C:\PROFAN\ROCICON.DLL",DLG&,470,6,40,40
    LET ICONBUTTON3& = @&(0)
    Create("Tooltip",DLG&,ICONBUTTON3&,"Eine neue Suche wird gestartet.")
    SETFOCUS(DLG&)
    Clear DIALOGENDE%

    WHILENOT DIALOGENDE%

        WAITINPUT

        If %KEY = 2

            Clear gestartet%
            LET DIALOGENDE% = 1

        ELSEIF GETFOCUS(LB&) LISTBOX

            SETFOCUS(DLG&)

        ELSEIF GETFOCUS(SLB&) SORTEDLISTBOX

            SETFOCUS(DLG&)

        ELSEIF GETFOCUS(ICONBUTTON3&) ICONBUTTON (Start)

            SETFOCUS(DLG&)
            gestartet% = 1
            SendMessage(LB&,$0184,0,0)
            SendMessage(SLB&,$0184,0,0)

        ELSEIF GETFOCUS(ICONBUTTON1&) ICONBUTTON (Abbruch)

            SETFOCUS(DLG&)
            Clear gestartet%

        ELSEIF GETFOCUS(ICONBUTTON2&) ICONBUTTON (Ende)

            SETFOCUS(DLG&)
            Clear gestartet%
            LET DIALOGENDE% = 1

        ENDIF

        If gestartet%

            WholeDisk("C")
            WholeDisk("D")
            WholeDisk("E")
            WholeDisk("F")
            WholeDisk("G")

        EndIf

    ENDWHILE

    DESTROYWINDOW(DLG&)
    ENDPROC --------------------------------------------------------------------------------

    Proc Main

        Declare Pfad$
        WindowTitle "Last1000"
        WindowStyle 16+64+1024
        Window 0,0 - 0,ass=s2>0
        Dialog

    ENDPROC

    Main
    ProgEnd

belle Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
25.02.2006  
 




Michael
Wodrich
Upps, juste quoi abîmé editiert. maintenant ist qui Abbruch pas plus entier net.
là avez son ensuite oui quoi zum bricoler.

belle Grüße
Michael Wodrich

P.S.: cela lag am 2. WaitInput. cela habe je jezt avec SetTimer überlistet.

Hoffentlich sommes eure Platten pas trop grand........
 
Programmieren, das spannendste Detektivspiel der Welt.
25.02.2006  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

409 Views

Untitledvor 0 min.

Themeninformationen

cet Thema hat 1 participant:

Michael Wodrich (2x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie