Page 2 sur 2

Re: Comment afficher tous les StringGadget

Publié : sam. 04/nov./2017 13:43
par MLD
Falsam a écrit :Un fichier texte, est en général intégralement chargé en mémoire. Une base de données SQL, seule l'enregistrement sélectionnée est chargée en mémoire.
Comme avec un fichier a accès direct!
Falsam a écrit :L'autre intérêt d'une base de données , et son extrême facilité à la manipuler (Trie, regroupement, Calculs, liaisons entres différentes tables, etc ...)
Et son extrême lourdeur que l'on trimbale en mémoire, même si l'on utilise que le 10em des possibilitées.

Re: Comment afficher tous les StringGadget

Publié : sam. 04/nov./2017 15:07
par Zorro
MLD a écrit :
Falsam a écrit :Un fichier texte, est en général intégralement chargé en mémoire. Une base de données SQL, seule l'enregistrement sélectionnée est chargée en mémoire.
Comme avec un fichier a accès direct!
heu ... on peut faire de l'acces direct en Purebasic ??
il me semblait que non, que seul l'acces sequentiel etait possible ?

Re: Comment afficher tous les StringGadget

Publié : sam. 04/nov./2017 15:19
par Marc56
Un fichier texte...
heu ... on peut faire de l'acces direct en Purebasic ??
il me semblait que non, que seul l'acces sequentiel etait possible ?
FileSeek ? (avec #PB_Absolute)

Re: Comment afficher tous les StringGadget

Publié : sam. 04/nov./2017 15:21
par MLD
@Zorro
Zorro a écrit :heu ... on peut faire de l'acces direct en Purebasic ??
Pas directement mais oui

Re: Comment afficher tous les StringGadget

Publié : sam. 04/nov./2017 17:39
par Ollivier
@Micoute

On peut désormais rajouter ou enlever des unités dans TC_Text sans devoir modifier quoique ce soit d'autre.

Essaie d'enlever les milliards d'années pour tester.

Code : Tout sélectionner

;**************************************************************************************************************************************************************************************************************************************
#TC_Spin = 16
#TC_String = 48

SetGadgetFont(#PB_Default, FontID(LoadFont(#PB_Any, "Arial", 16) ) )

Define.I X0 = 16, Y0 = 40, Xc = 128, Yc = 32, Y = Y0
Global TC_Text.S = "Milliard(s) d'annees;2;31557600000000000;Million(s) d'annees;2;31557600000000;Millenaire(s);2;31557600000;Annee(s);2;31557600;Mois;3;2629800;Semaine(s);3;604800;Jour(s);4;86400;Heure(s);5;3600;Minute(s);7;60;Seconde(s);9;1"
Global TC_UnitQty = ((CountString(TC_Text, ";") + 1) / 3)
Global TC_Window = OpenWindow(#PB_Any, 100, 100, 800, 2 * Y0 + Yc * TC_UnitQty, "TC", #PB_Window_SystemMenu)
Global Dim TC_Gadget(63)

For I = 0 To (TC_UnitQty - 1)
        X = X0: TC_Gadget(I) = TextGadget(#PB_Any, X, Y, Xc, 30, StringField(TC_Text, I * 3 + 1, ";"), #PB_Text_Center)
        X + (Xc * 1): TC_Gadget(I + #TC_Spin) = SpinGadget(#PB_Any, X, Y, Xc * 2, 30, 0, Pow(10, Val(StringField(TC_Text, I * 3 + 2, ";") ) ) - 1, #PB_Spin_Numeric)
        X + (Xc * 2): TC_Gadget(I + 32) = TextGadget(#PB_Any, X, Y, Xc, 30, StringField(TC_Text, I * 3 + 1, ";"), #PB_Text_Center)
        X + (Xc * 1): TC_Gadget(I + #TC_String) = StringGadget(#PB_Any, X, Y, Xc * 2, 30, "")
        Y + Yc
Next

Procedure TC_Update()
        For I = 0 To (TC_UnitQty - 1)
                ParSec.D + ((GetGadgetState(TC_Gadget(I + #TC_Spin) ) * Val(StringField(TC_Text, I * 3 + 3, ";") ) ) )
        Next
        For I = 0 To (TC_UnitQty - 1)
                SetGadgetText(TC_Gadget(I + #TC_String), StrD((ParSec) / Val(StringField(TC_Text, I * 3 + 3, ";") ) ) )
        Next
EndProcedure

        BindEvent(#PB_Event_Gadget, @TC_Update(), TC_Window, #PB_All, #PB_All)
        Repeat: Until WaitWindowEvent() = #PB_Event_CloseWindow
Zorro a écrit :"optimiser" n'est pas toujours révélateur du quotient intellectuel
:D :D
Ça m'a fatigué. Désolé !

Re: Comment afficher tous les StringGadget

Publié : dim. 05/nov./2017 10:17
par Micoute
Merci infiniment Ollivier, avec ce système, on peut même descendre jusqu'au millièmes de seconde et au-delà. J'adore.