Source wurde am 15.07.2007 aus qui MMJ-Quellcodesammlung (Dietmar Horn) dans qui Babyklappe sur XProfan.Com abgelegt:
Dossier: Dateiattribute qui Fichiers eines ganzen Verzeichnisses ändern
Programme: ChgFilAtr. Entwickelt sous Profan 6.6 et Windows 95
mets ou bien löscht qui Dateiattribute aller ou bien ausgewählter Fichiers eines
Verzeichnisses. cela Attribut des Verzeichnisses wird pas modifié!
Unterverzeichnisse rester inchangé.
----------------------------------------------------------------------------------
Version 1.0 25.11.2001. cela Programmbeispiel peux libre benutzt volonté, pour
Schäden peux aucun la responsabilité übernommen volonté.
Autor: Gerhard Putschalka
email: g.putschalka@web.de
homepage: http://members.telering.at/g.putschalka/index.html
----------------------------------------------------------------------------------
Déclarer Pfad$,Anzahl%,Wert&,X%,_dlg%,Ende%,Abbr%,nom$,Id#,Text#,BAlle%,Bal%,AlleKz%
Déclarer ROSet%,RORes%,RONoc%,HiSet%,HiRes%,HiNoc%,ArSet%,ArRes%,ArNoc%,BOk%,BAbbr%,Box%
Proc introduction wähle Verzeichnis. Pfad$ contient après den Pfad trop den trop
bearbeitenden Fichiers, SPfad$ ist Pfad zum aktuellen Programme.
Déclarer Zx$,SPfad$,Qté%
Laisser SPfad$=@GETDIR $(@) sichere aktuellen Pfad
ClearList
Laisser Pfad$ = @ChooseDir$(Verzeichnis choisir:) Lfwk:Pf1Pf2
Laisser Abbr% = 1
Si (@Len(Pfad$) > 0)
Laisser Abbr% = 0
AddFiles *.*
übertrage qui Einträge dans une Multiselect Listbox, unterdrücke alle Verzeichnisse
Laisser Qté% = 0
Laisser Box% = control(LISTBOX,,$50B008C3,360,30,370,305,_dlg%,100,%HInstance)
@createtext(_dlg%,Fichiers zum Ändern auswählen,440,10,220,16)
WhileNot (Qté% > %GetCount)
Laisser Zx$ = @ListBoxItem$(Qté%)
Casenote @Equ$(@Left $(Zx$,1),[) : @AddStrings(Box%,Zx$)
Inc Qté%
Endwhile
EndIf
Retour
ENDPROC
wähle alle Listboxeinträge aus
Proc Wähle_alle
Déclarer Y%
Laisser X% = 0
Laisser Y% = @GetCount(Box%)
@MessageBox(@Str$(@GetCount(Box%)),,32)
Tandis que (X% < Y%)
sendmessage (Box%,$0185,1,X%) Eintrag markieren
Inc X%
Endwhile
Retour
ENDPROC
Proc Execute_Änderungen
Paramètres FilNam$
Assign #1,FilNam$
AtrByt% = @GetFAttr(#1) lese Dateiattribut
Cas @GetCheck(ROSet%) : AtrByt% = @SetBit(AtrByt%,0,1)
Cas @GetCheck(RORes%) : AtrByt% = @SetBit(AtrByt%,0,0)
Cas @GetCheck(HiSet%) : AtrByt% = @SetBit(AtrByt%,1,1)
Cas @GetCheck(HiRes%) : AtrByt% = @SetBit(AtrByt%,1,0)
Cas @GetCheck(ArSet%) : AtrByt% = @SetBit(AtrByt%,5,1)
Cas @GetCheck(ArRes%) : AtrByt% = @SetBit(AtrByt%,5,0)
SetFAttr #1,AtrByt% ändere cela Dateiattribut
Retour
ENDPROC
verarbeite Listboxliste et ändere qui Dateiattribute qui ausgewählten Eonträge
Proc Attribute_ändern
Déclarer AtrByt%,Y&,Anzahl&
Faible Id#,1000 capacité 1000 reicht pour 250 Fichiers im Verzeichnis ggf. changement!
Faible Text#,256
Laisser X% = 0
let Anzahl& = sendmessage(Box%,$0190,0,0) Anzahl qui Selektierungen
sendmessage(Box%,$0191,Anzahl&,ID#) qui selektierten Einträge übernehmen
WhileNot (X% = Anzahl&)
let Y& = long(ID#,mul(X%,4)) numéro des Eintrages holen
sendmessage(Box%,$0189,Y&,Text#) den Sel. Text aus qui liste holen
Laisser nom$ = Pfad$;@String$(Text#,0)
Execute_Änderungen nom$
inc X%
Endwhile
Dispose Id#
Dispose Text#
Retour
ENDPROC
Ändere qui Dateiattribute de allen Listboxeinträge (Auswahlen avons aucun signification)
Proc Alle_ändern
Déclarer Y%,AtrByt%
Laisser X% = 0
Laisser Y% = @GetCount(Box%)
Tandis que (X% < Y%)
Laisser nom$ = Pfad$;@GetString$(Box%,X%)
Execute_Änderungen nom$
Inc X%
Endwhile
Retour
ENDPROC
zeige Auswahldialog zur sélection qui Fichiers
et zum Bestimmen quelle Attribute trop ändern sommes
Proc Auswahldialog
@createtext(_dlg%,pas ändern,498,374,90,20) 3428
@createtext(_dlg%,effacer,592,374,60,20) 3432
@createtext(_dlg%,mettons,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%,démolir,640,480,88,30) 3852
let BAlle%=@createbutton(_dlg%,alle markieren,500,325,120,30) 3852
mets alle Radiobuttons sur pas ändern
SetCheck RoNoc%,1
SetCheck HiNoc%,1
SetCheck ArNoc%,1
blockiere OK Button si qui Listbox 0 Einträge contient
Cas (@GetCount(Box%)= 0) : EnableWindow Bok%,0
Laisser Ende% = 0
Laisser Abbr% = 0
WhileNot Ende%
Si @GetFocus(Bok%)
Laisser Ende% = 1
ElseIf @GetFocus(BAbbr%)
Laisser Ende% = 1
Laisser Abbr% = 1
ElseIf @GetFocus(BAl%)
Laisser AlleKz% = 1
Laisser Ende% = 1
ElseIf @GetFocus(BAlle%)
Wähle_alle
@SetFocus(_dlg%) verhindert hängenbleiben qui bouton alle auswählen
EndIf
Endwhile
Retour
ENDPROC
========
MainLine
========
SetTrueColor 1
Fenêtre Style 16
Windowtitle Dateiattribute ändern
Fenêtre 0,0-800,600
CLS @RGB(255,255,255)
let _dlg%=@createdialog(%Hwnd,Dialog,10,10,750,550)
introduction
Casenote Abbr% : Auswahldialog
Si non Abbr%
Si AlleKz%
Alle_ändern
D'autre
Attribute_ändern
EndIf
EndIf
@DestroyWindow(_dlg%)
@MessageBox(Programme wurde finissez,,32)
end