Français
Source/ Codesnippets

Json + TreeView (Wochenplan)

 

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
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
13.03.2023  
 



Zum Quelltext


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

921 Views

Untitledvor 0 min.
Gast.0815 vor 15 Tagen
Member 862464114.04.2024
Manfred Barei09.12.2023
H.Brill14.11.2023
plus...

Themeninformationen

cet Thema hat 1 participant:

H.Brill (1x)


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