H.Brill | ici la fois un Wochenplan avec zusätzlicher liste pour chacun Aktion. Wobei je cela Lecture qui Wochennummer et avec cela une comparaison einer Dossier avec qui aktuellen semaine, aussi ici vom Forum habe. intéressant, pour quoi cela aussi trop gebrauchen ist.
Vielen Dank pour.
DEF GetFileAttributesEx(3) ! "Kernel32","GetFileAttributesExA"
DEF FileTimeToLocalFileTime(2) !"Kernel32","FileTimeToLocalFileTime"
DEF FileTimeToSystemTime(2) !"Kernel32","FileTimeToSystemTime"
Déclarer Handle btn1, btn2, btn3, edit1, edit2, tv
Déclarer Long ende, js, xs, item, subitem, obj, jtage[5]
Déclarer String fichier, week, ueberschrift, jitem, tvsubitem, nom, txt, Tage[5]
Déclarer Long aweek, fweek, p, y, anz, tvitem, liste
Titre de la fenêtre "Wochen - Liste"
Fenêtre 600, 500
btn1 = Créer("Button", %HWnd, "Add", 10, 10, 60, 25)
btn2 = Créer("Button", %HWnd, "Drucken", 380, 10, 60, 25)
btn3 = Créer("Button", %HWnd, "Ende", 160, 10, 60, 25)
Créer("Text", %HWnd, "Aktion", 10, 50, 60, 25)
edit1 = Créer("Edit", %HWnd, », 100, 50, 180, 25)
Créer("Text", %HWnd, "Liste", 300, 10, 50, 25)
edit2 = Créer("MultiEdit", %HWnd, », 300, 40, 240, 130)
tv = Créer("TreeView", %HWnd, 0, 10, 150, 240, 150)
Tage[0] = "Montag"
Tage[1] = "Dienstag"
Tage[2] = "Mittwoch"
Tage[3] = "Donnerstag"
Tage[4] = "Freitag"
Tage[5] = "Samstag"
ende = 0
fichier = "Wochenplan.Json"
Si non FileExists(fichier)
InitJson()
InitTree()
D'autre
' avec cela on chacun semaine une neuen plan hat.
week = GetAttribute(fichier)
fweek = DT("GetWoY", DT("SetDate", subStr$(week,10,"|")))
aweek = DT("GetWoY", !Now)
Si aweek = fweek
js = Créer("JSON", fichier)
JsonInitTree()
D'autre
InitJson()
InitTree()
EndIf
EndIf
Utilisateur Messages $10
WhileNot ende
WaitInput
Si Clicked(btn1)
'Ajouter à item
Si IndexOf(Tage[], jitem) > -1
TreeView("InsertItem", tv, item, 0, GetText $(edit1))
TreeView("SetChildren", tv, item, 1)
obj = Json("GetObject", js, jitem)
xs = Créer("Json")
liste = Json("NewList")
txt = GetText $(edit2)
Si Len(txt) > 0
WhileLoop 0, GetCount(edit2) - 1
Json("AddString", liste, GetString$(edit2, &LOOP))
Endwhile
EndIf
Json("AddList", xs, "Liste", liste)
JSon("AddObject", obj, GetText $(edit1), xs)
EndIf
ElseIf Clicked(btn2)
' Drucken
anz = GetCount(edit2)
y = 10
StartPrint
DrawText 10, y, ueberschrift
Inc y, 14
DrawText 10, y, "-----------------------"
Inc y, 14
WhileLoop 0, anz - 1
DrawText 10, y, GetString$(edit2, &LOOP)
Inc y, 14
Endwhile
EndPrint
ElseIf Clicked(btn3)
Json("WRITE", js, fichier)
ende = 1
ElseIf Clicked(tv)
item = TreeView("GetSelected", tv)
TreeView("Expand", tv, item, 3)
jitem = GetText $(tv, item)
p = IndexOf(tage[], jitem)
Si p = -1
tvsubitem = GetText $(tv, Treeview("GetSelected", tv))
ueberschrift = tvsubitem
jitem = GetText $(tv, TreeView("GetParent", tv, Treeview("GetSelected", tv)))
obj = Json("GetObject", js, jitem)
subitem = Json("GetObject", obj, tvsubitem)
liste = Json("GetList", subitem, "Liste")
anz = Json("Count", liste)
SetText edit1, jitem
Si anz > 0
Txt = »
SetText edit2, »
WhileLoop 0, anz - 1
txt = txt + Json("GetString", liste, &LOOP) + Chr$(13) + Chr$(10)
Endwhile
SetText edit2, txt
EndIf
EndIf
EndIf
Si %UMessage = $10
Json("WRITE", js, fichier)
ende = 1
EndIf
Endwhile
Proc InitJson
js = Créer("Json")
WhileLoop 0, 5
jtage[&LOOP] = Créer("Json")
Json("AddObject", js, Tage[&LOOP], jtage[&LOOP])
Endwhile
ENDPROC
Proc InitTree
WhileLoop 0, 5
TreeView("InsertItem", tv, 0, 0, Tage[&LOOP])
TreeView("SetChildren", tv, 0, 1)
Endwhile
ENDPROC
Proc JsonInitTree
Déclarer Long x, i, h
anz = Json("Count", js)
WhileLoop 0, anz - 1
nom = Json("Name", js, &LOOP)
h = TreeView("InsertItem", tv, 0, 0, nom)
obj = Json("GetObject", js, nom)
x = Json("Count", obj)
For i, 0, x - 1
Si Json("Type", obj, i) <> 5
TreeView("InsertItem", tv, h, 0, Json("Name", obj, i))
TreeView("SetChildren", tv, h, 1)
EndIf
EndFor
Endwhile
ENDPROC
Proc Getweekday
Paramètres day&
Retour substr$("Sonntag,lundi,mardi,mercredi,jeudi,vendredi,Samstag",day& + 1,»)
endproc
proc GetAttribString
parameters attrib&
return si(testbit(attrib&,4),"<DIR> ",») \
+ si(testbit(attrib&,0),"r","-") \
+ si(testbit(attrib&,5),"a","-") \
+ si(testbit(attrib&,1),"h","-") \
+ si(testbit(attrib&,2),"s","-")
endproc
proc GetAttribute
parameters File$
Déclarer info#,file#,utc#,time#,Attrib&,size!,cwrite$,ctime$,awrite$,atime$,wwrite$,wtime$,size$,Attrib$
Déclarer cday$,aday$,wday$,return$
dim info#,36
dim file#, len(file$)+1
String file#,0 = file$
DIM utc#,8
DIM time#,16
GetFileAttributesEx(file#,0,info#)
Attrib& = long(info#,0)'Attribut
Attrib$ = GetAttribString(attrib&)
size! = (long(info#,28) * 65536 * 65536) + long(info#,32)'Filesize
Size$ = Format $("###,###,###,###,###.00",size!)
return$ = size$+"|"+attrib$
'-------------------------Erstellzeit
FileTimeToLocalFileTime(info#+4,utc#)
FileTimeToSystemTime(utc#,time#)
cwrite$=»
ctime$=»
si word(time#,0) >= 1601
cday$ = Getweekday(word(time#,4))
return$ = return$+"|"+cday$+"|"
cwrite$=Format $("00",word(time#,6))+"."+Format $("00",word(time#,2))+"."+Format $("00",word(time#,0))'charge written date
ctime$=Format $("00",word(time#,8))+»+Format $("00",word(time#,10))+»+Format $("00",word(time#,12))'charge written time
d'autre
cwrite$="00.00.00"
ctime$="00:00:00"
endif
return$ = return$+cwrite$+"|"+ctime$+"|"
'-----------------------------dernier Zugriff
FileTimeToLocalFileTime(info#+12,utc#)
FileTimeToSystemTime(utc#,time#)
awrite$=»
atime$=»
si word(time#,0) >= 1601
aday$ = Getweekday(word(time#,4))
return$ = return$+aday$+"|"
awrite$=Format $("00",word(time#,6))+"."+Format $("00",word(time#,2))+"."+Format $("00",word(time#,0))'charge written date
atime$=Format $("00",word(time#,8))+»+Format $("00",word(time#,10))+»+Format $("00",word(time#,12))'charge written time
d'autre
awrite$="00.00.00"
atime$="00:00:00"
endif
return$ = return$+awrite$+"|"+atime$+"|"
'--------------------------- Zuletzt geschrieben
FileTimeToLocalFileTime(info#+20,utc#)
FileTimeToSystemTime(utc#,time#)
wwrite$=»
wtime$=»
si word(time#,0) >= 1601
wday$ = Getweekday(word(time#,4))
return$ = return$+wday$+"|"
wwrite$=Format $("00",word(time#,6))+"."+Format $("00",word(time#,2))+"."+Format $("00",word(time#,0))'charge written date
wtime$=Format $("00",word(time#,8))+»+Format $("00",word(time#,10))+»+Format $("00",word(time#,12))'charge written time
d'autre
wwrite$="00.00.00"
wtime$="00:00:00"
endif
return$ = return$+wwrite$+"|"+wtime$
Dispose info#
Dispose file#
Dispose UTC#
Dispose time#
return return$
endproc
Fin
|
|