ElapsedMilliseconds() ?????

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

ElapsedMilliseconds() ?????

Message par microdevweb »

Avant ElapsedMilliseconds() me renvoyait une valeur positive maintenant :?: Il me renvoie une valeur négative. Heu la je comprend pas ??????????

Testé sur Pb 5.31 et 5.40 b8 Os Windows 7

Code : Tout sélectionner

Debug ElapsedMilliseconds() ; renvoie -2080830966
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: ElapsedMilliseconds() ?????

Message par G-Rom »

ton programme à commencer il y a à peu près 2035 ans ^^ ton pc à altéré le continuum espace temps mcFly ! :mrgreen:
aucune idée du pourquoi ^^ reboot ton pc.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: ElapsedMilliseconds() ?????

Message par Anonyme2 »

Je ne sais pas si cela vient de là, mais parfois debug affiche une valeur négative, j'utilise alors un messagerequester avec str() pour afficher les valeurs correctes.
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

Re: ElapsedMilliseconds() ?????

Message par celtic88 »

essaye ça ?
Debug GetTickCount_()
.....i Love Pb :)
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: ElapsedMilliseconds() ?????

Message par microdevweb »

Bonsoir celtic88,

Code : Tout sélectionner

Debug GetTickCount_() ; donne -2073375560
Comme le dit G-Rom mon Pc est retourné dans le temps. Whaouwwwwwwww j'ai inventé la machine à remonté le temps. :mrgreen:
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

Re: ElapsedMilliseconds() ?????

Message par celtic88 »

microdevweb lol

mai il te faux une "delorean"


Image

:p
.....i Love Pb :)
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: ElapsedMilliseconds() ?????

Message par microdevweb »

Bon blague dans le coin, après un Reboot c'est revenu dans l'ordre. Cependant si cela mes arrivé cela peut arriver à d'autre Pc et alors le code suivant ne fonctionnera pas.

(normalement ce code devrait être effectué la première fois et puis toutes les 100 millisecondes)

Code : Tout sélectionner

Global TimeElapsed.i
If ElapsedMilliseconds()-TimeElapsed>100
      Debug "Ok"
      TimeElapsed=ElapsedMilliseconds()
EndIf
Et voici un bug bien difficile puisque sur la plupart des machines ce code fonctionnera, mais pourrait ne pas fonctionner sur d'autres comme c'était le cas chez moi.

I vaut donc mieux faire ce code qui s'effectuera même si ElapsedMilliseconds() retourne une valeur négative mais ne s'effectuera que toutes les 100 millisecondes.

Code : Tout sélectionner

Global TimeElapsed.i=ElapsedMilliseconds()
If ElapsedMilliseconds()-TimeElapsed>100
      Debug "Ok"
      TimeElapsed=ElapsedMilliseconds()
EndIf
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: ElapsedMilliseconds() ?????

Message par comtois »

The elapsed time is stored as a DWORD value. Therefore, the time will wrap around to zero if the system is run continuously for 49.7 days.
Vu ici
Mais comme en PureBasic les nombres sont signés, ça te fait environ 24 jours avant d'avoir une valeur négative en retour si tu utilises un integer en x86 sinon faut essayer avec un quad.

Tu as fait ton test avec la version x86 ou x64 ?
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: ElapsedMilliseconds() ?????

Message par microdevweb »

Bonjour comtois,

X86 et comme je n’éteins presque jamais mon PC voila la réponse à ce bizarerie.

Merci
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
jambon
Messages : 19
Inscription : lun. 23/juin/2014 16:01

Re: ElapsedMilliseconds() ?????

Message par jambon »

Serai t-il possible d'éviter ce problème en créant tout simplement une boucle, une valeur qui s'incrémente et un delay de une milliseconde ?

(bon ok je sort c'est barbare, et très cochon)
:mrgreen:
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: ElapsedMilliseconds() ?????

Message par microdevweb »

@jambon,

La seule chose à faire attention (pour un chronos) c'est d'affecté au lancement à la variable ElapsedMilliseconds(), et même si ElapsedMilliseconds() renvoie une valeur négative la différence des 2 valeurs sera correct
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Répondre