Comment afficher tous les StringGadget

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
MLD
Messages : 1097
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Comment afficher tous les StringGadget

Message 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.
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: Comment afficher tous les StringGadget

Message 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 ?
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Marc56
Messages : 2146
Inscription : sam. 08/févr./2014 15:19

Re: Comment afficher tous les StringGadget

Message 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)
Avatar de l’utilisateur
MLD
Messages : 1097
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Comment afficher tous les StringGadget

Message par MLD »

@Zorro
Zorro a écrit :heu ... on peut faire de l'acces direct en Purebasic ??
Pas directement mais oui
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Comment afficher tous les StringGadget

Message 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é !
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Comment afficher tous les StringGadget

Message 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.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Répondre