Deutsch
Quelltexte/ Codesnippets

Datei Dateiattribute Dateien Eines Ganzen Verzeichniss

 

Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Datei: Dateiattribute der Dateien eines ganzen Verzeichnisses ändern
Programm: ChgFilAtr. Entwickelt unter Profan 6.6 und Windows 95
Setzt oder löscht die Dateiattribute aller oder ausgewählter Dateien eines
Verzeichnisses. Das Attribut des Verzeichnisses wird nicht verändert!
Unterverzeichnisse bleiben unverändert.
----------------------------------------------------------------------------------
Version 1.0  25.11.2001.     Das Programmbeispiel kann frei benutzt werden, für
Schäden kann keine Haftung übernommen werden.
Autor: Gerhard Putschalka
email: g.putschalka@web.de
homepage: http://members.telering.at/g.putschalka/index.html
----------------------------------------------------------------------------------
Declare Pfad$,Anzahl%,Wert&,X%,_dlg%,Ende%,Abbr%,Name$,Id#,Text#,BAlle%,Bal%,AlleKz%
Declare ROSet%,RORes%,RONoc%,HiSet%,HiRes%,HiNoc%,ArSet%,ArRes%,ArNoc%,BOk%,BAbbr%,Box%

Proc Einleitung  wähle Verzeichnis. Pfad$ enthält danach den Pfad zu den zu

    bearbeitenden Dateien, SPfad$ ist Pfad zum aktuellen Programm.
    Declare Zx$,SPfad$,Anz%
    Let SPfad$=@GetDir$(@)     sichere aktuellen Pfad
    ClearList
    Let Pfad$ = @ChooseDir$(Verzeichnis wählen:)  Lfwk:Pf1Pf2
    Let Abbr% = 1

    If (@Len(Pfad$) > 0)

        Let Abbr% = 0
        AddFiles *.*
        übertrage die Einträge in eine Multiselect Listbox, unterdrücke alle Verzeichnisse
        Let Anz% = 0
        Let Box% = control(LISTBOX,,$50B008C3,360,30,370,305,_dlg%,100,%HInstance)
        @createtext(_dlg%,Dateien zum Ändern auswählen,440,10,220,16)

        WhileNot (Anz% > %GetCount)

            Let Zx$ = @ListBoxItem$(Anz%)
            CaseNot @Equ$(@Left$(Zx$,1),[) : @AddString(Box%,Zx$)
            Inc Anz%

        EndWhile

    EndIf

    Return

EndProc

wähle alle Listboxeinträge aus

Proc Wähle_alle

    Declare Y%
    Let X% = 0
    Let Y% = @GetCount(Box%)
    @MessageBox(@Str$(@GetCount(Box%)),,32)

    While (X% < Y%)

        sendmessage (Box%,$0185,1,X%)    Eintrag markieren
        Inc X%

    EndWhile

    Return

EndProc

Proc Execute_Änderungen

    Parameters FilNam$
    Assign #1,FilNam$
    AtrByt% = @GetFAttr(#1)                   lese Dateiattribut
    Case @GetCheck(ROSet%) : AtrByt% = @SetBit(AtrByt%,0,1)
    Case @GetCheck(RORes%) : AtrByt% = @SetBit(AtrByt%,0,0)
    Case @GetCheck(HiSet%) : AtrByt% = @SetBit(AtrByt%,1,1)
    Case @GetCheck(HiRes%) : AtrByt% = @SetBit(AtrByt%,1,0)
    Case @GetCheck(ArSet%) : AtrByt% = @SetBit(AtrByt%,5,1)
    Case @GetCheck(ArRes%) : AtrByt% = @SetBit(AtrByt%,5,0)
    SetFAttr #1,AtrByt%                       ändere das Dateiattribut
    Return

EndProc

verarbeite Listboxliste und ändere die Dateiattribute der ausgewählten Eonträge

Proc Attribute_ändern

    Declare AtrByt%,Y&,Anzahl&
    Dim Id#,1000     Kapazität 1000 reicht für 250 Dateien im Verzeichnis ggf. ändern!
    Dim Text#,256
    Let X% = 0
    let Anzahl& = sendmessage(Box%,$0190,0,0)    Anzahl der Selektierungen
    sendmessage(Box%,$0191,Anzahl&,ID#)          Die selektierten Einträge übernehmen

    WhileNot (X% = Anzahl&)

        let Y& = long(ID#,mul(X%,4))              Nummer des Eintrages holen
        sendmessage(Box%,$0189,Y&,Text#)          den Sel. Text aus der Liste holen
        Let Name$ = Pfad$;@String$(Text#,0)
        Execute_Änderungen Name$
        inc X%

    EndWhile

    Dispose Id#
    Dispose Text#
    Return

EndProc

Ändere die Dateiattribute von allen Listboxeinträge (Auswahlen haben keine Bedeutung)

Proc Alle_ändern

    Declare Y%,AtrByt%
    Let X% = 0
    Let Y% = @GetCount(Box%)

    While (X% < Y%)

        Let Name$ = Pfad$;@GetString$(Box%,X%)
        Execute_Änderungen Name$
        Inc X%

    EndWhile

    Return

EndProc

zeige Auswahldialog zur Auswahl der Dateien
und zum Bestimmen welche Attribute zu ändern sind

Proc Auswahldialog

    @createtext(_dlg%,nicht ändern,498,374,90,20)  3428
    @createtext(_dlg%,löschen,592,374,60,20)  3432
    @createtext(_dlg%,setzen,664,374,50,20)  3964
    let RONoc%=@createradiobutton(_dlg%,,536,396,16,16)  3044
    let RORes%=@createradiobutton(_dlg%,,606,396,16,16)  2332
    let ROSet%=@createradiobutton(_dlg%,,680,396,16,16)  2448
    @creategroupbox(_dlg%,,528,383,176,32)  2792
    let HiNoc%=@createradiobutton(_dlg%,,536,426,16,16)  2436
    let HiRes%=@createradiobutton(_dlg%,,606,426,16,16)  2776
    let HiSet%=@createradiobutton(_dlg%,,680,426,16,16)  2420
    @creategroupbox(_dlg%,,528,413,176,32)  2780
    let ArNoc%=@createradiobutton(_dlg%,,536,456,16,16)  2388
    let ArRes%=@createradiobutton(_dlg%,,606,456,16,16)  2804
    let ArSet%=@createradiobutton(_dlg%,,680,456,16,16)  2796
    @creategroupbox(_dlg%,,528,443,176,32)  2784
    @createtext(_dlg%,Schreibschutz,408,392,100,16)  3060
    @createtext(_dlg%,versteckt,408,426,104,16)  2676
    @createtext(_dlg%,Archiv,408,456,104,16)  2464
    let BOk%=@createbutton(_dlg%,markierte ändern,360,480,130,30)  3420
    let BAl%=@createbutton(_dlg%,ALLE ändern,500,480,130,30)  3420
    let BAbbr%=@createbutton(_dlg%,abbrechen,640,480,88,30)  3852
    let BAlle%=@createbutton(_dlg%,alle markieren,500,325,120,30)  3852
    setze alle Radiobuttons auf nicht ändern
    SetCheck RoNoc%,1
    SetCheck HiNoc%,1
    SetCheck ArNoc%,1
    blockiere OK Button wenn die Listbox 0 Einträge enthält
    Case (@GetCount(Box%)= 0) : EnableWindow Bok%,0
    Let Ende% = 0
    Let Abbr% = 0

    WhileNot Ende%

        If @GetFocus(Bok%)

            Let Ende% = 1

        ElseIf @GetFocus(BAbbr%)

            Let Ende% = 1
            Let Abbr% = 1

        ElseIf @GetFocus(BAl%)

            Let AlleKz% = 1
            Let Ende% = 1

        ElseIf @GetFocus(BAlle%)

            Wähle_alle
            @SetFocus(_dlg%)      verhindert hängenbleiben der Taste alle auswählen

        EndIf

    EndWhile

    Return

EndProc

========
MainLine
========
SetTrueColor 1
WindowStyle 16
Windowtitle Dateiattribute ändern
Window 0,0-800,600
CLS @RGB(255,255,255)
let _dlg%=@createdialog(%Hwnd,Dialog,10,10,750,550)
Einleitung
CaseNot Abbr% : Auswahldialog

IfNot Abbr%

    If AlleKz%

        Alle_ändern

    Else

        Attribute_ändern

    EndIf

EndIf

@DestroyWindow(_dlg%)
@MessageBox(Programm wurde beendet,,32)
end
 
15.07.2007  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

3.964 Betrachtungen

Unbenanntvor 0 min.
AndreasS14.01.2019
Klaus Ernst09.01.2018
RICOSCH25.11.2014
Jupp Fitten03.02.2014
Mehr...

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

unbekannt (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


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