Moyenne temps en centièmes

Résolu
cs_rocknroll2 Messages postés 100 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 22 janvier 2010 - 19 mai 2006 à 13:40
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 2 avril 2009 à 16:59
Bonjour à tous,
Après recherches.... pas trouvé de solution viable !
Je cherche à convertir une différence de temps en centième de secondes... C'est peut-être très simple, mais après essais avec des "date" et des "time".. pas de résultat positif.
En fait, j'ai deux évènements et je veux juste la différence en centième de secondes entre ces deux évènements.

Merci pour un petit coup de main.

A+ et bonne prog à tous

Ouais, je serais un Pro du VB6 et du PHP dans 10/15 ans ;)

18 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
19 mai 2006 à 14:19
Bonjour

Tu peux aller voir :
http://www.vbfrance.com/infomsg_MESURE-TEMPS-PRECIS_294493.aspx

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
3
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
19 mai 2006 à 13:54
Bonjour

Tu as regarder Timer ?
Et il y a aussi GetPerformanceCounter, GetPerformanceFrequency.

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
0
cs_rocknroll2 Messages postés 100 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 22 janvier 2010
19 mai 2006 à 14:15
Oups, là tu me parles un peu chinois......
Timer OK dans son utilisation basique...
 mais les deux autres fonctions connais pas....

Ouais, je serais un Pro du VB6 et du PHP dans 10/15 ans ;)
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
19 mai 2006 à 17:31
Salut,


L'API Win32 GetTickCount renvoie le nombre de millisecondes depuis le
démarrage du système. Le compteur boucle au bout de 49 jours si mes
souvenirs sont bons. Tu sauvegarde sa valeur au premier évènement, tu
prend une nouvelle valeur au deuxième, tu fais la différence tu
multiplie par 10, tu arrondie, et ça devrait être tout bon.


Le timer ne te fera faire que du bricolage.


QueryPerformanceCounter et QueryPerformanceFrequency renvoient
respectivement la valeur et la fréquence d'incrémentation d'un compteur
hardware. Le problème est qu'il renvoie des entiers sur 64 bits, et que
c'est chiant à gérer en VB6. Et si on prend les 32 bits  de poid
faible, le compteur boucle assez vite, ce qui peut amener a trouver des
résultats abérants...


Pardon, je fais aussi ma pub... Ce source fournie une dll qui permet de ne pas se soucier des détails (Pour toi, un InitDelta, un GetDelta).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
19 mai 2006 à 17:53
le 64 bits tu peux le mettre dans du Currency et là plus de problèmes.


Private Declare Function QueryPerformanceCounter Lib "kernel32" (X As Currency) As Long

Private Declare Function QueryPerformanceFrequency Lib "kernel32" (X As Currency) As Long


    Dim Ret  As Long

    Dim freq    As Currency   


    Ret = QueryPerformanceFrequency(freq)

    If Ret = 0 Then

        MsgBox "This computer does not have a high-performance timer."

        End

        Exit Sub

    End If

    freq = freq

    MsgBox "Fréquence en Hertz = " & FormatNumber(freq * 10000, 0)

Daniel
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
19 mai 2006 à 18:55
Beuah, bin ça c'est vraiment un truc malade.


Je suis OK que à la sortie de l'appel sur QueryPerformanceFrequency, il
y ai la bonne valeur codé en entier 64 bits dans le Currency qui en
fait aussi 64. J'aime ensuite beaucoup le freq = freq... Et enfin , la
multiplication par 10000.


Faudrait vraiment un tour de passe passe (le freq = freq ?), ou un
codage très particulier des currency (Qui sont avant tout des réels)
pour que ça marche...


J'éssaie dès que j'ai un PC avec VB.
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
19 mai 2006 à 19:18
c'est pas un tour de passe passe

le Currency n'est pas un flottant mais un type de numérique à virgule fixe (4 décimales)

il suffit de multiplier par 10000 pour retrouver le nombre,

ça évite de manipuler le "Large_Intéger"  = 2 entiers Long

avec les problèmes de conversion du négatif ...

l'APi lui ne le sait pas, du moment qu'il a ses 64 bits, il les remplit sans savoir ce que c'est.

c'est valable pour tout APi renvoyant 2 entiers Long:
   GetFileTime, FileTimeToSystemTime, FileTimeToLocalFileTime, etc ...

Daniel
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
19 mai 2006 à 19:49
le freq = freq vient du fait que si on multiplie/divise par un multiple de 10, le calcul ensuite est différent.

ce qui fait que j'ai enlevé la division, pour que le 10000 apparaisse, sinon c'était pas clair.


Dim count1  As Currency 

Dim count2  As Currency


    freq = freq / 100


    QueryPerformanceCounter count1

     '   le code à tester

    QueryPerformanceCounter count2

   
   ' temps en millisecondes
    MsgBox (count2 - count1) / freq

'freq = freq
MsgBox (count2 - count1) * 100 / freq


freq = freq * 10000

MsgBox (count2 - count1) * 1000000 / freq


freq = freq / 100

MsgBox (count2 - count1) / freq


Daniel
0
cs_rocknroll2 Messages postés 100 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 22 janvier 2010
19 mai 2006 à 20:04
Oups....


Super les infos, j'en apprends plus en 2mns qu'en.... 10 ans tout seul...


Mais là, je crois que pour moi cela va trop loin, je n'ai pas besoin (je crois ???) d'une telle précision de temps.


En fait, j'essaie de faire un compteur de BPM manuel (pas automatique...) qui me calcule le BPM en fonction du nombre de frappes (ou cliks).Je sais par exemple qu'un intervalle de temps de 0,251 secondes 240 BPM, 0,252 secondes 239 BPM, 0,253 = 238 BPM
C'est cet intervalle de temp que je cherche à récupérer...
Je vais essayer avec GetTickCount, mais... cela me semble trop précis.

En tout cas vos messages sont hyper interressants et ouvre d'autres horizons.

A vous lire

Ouais, je serais un Pro du VB6 et du PHP dans 10/15 ans ;)
0
cs_lolita111 Messages postés 5 Date d'inscription jeudi 12 février 2009 Statut Membre Dernière intervention 2 avril 2009
2 avril 2009 à 15:30
bonjour mes amis je veux un programme qui calcule la moyenne generale d'un stagiere en mode windows
je veux qu'il ya 3 forms le premier est eran de demarage et regroupe les domaines ,les utulisateures et  un mot de passe pour passer au dexieme form. et le deuxieme est le bulltin de notes et  regroupe les cordonnes de chaque stagieres ,les notes et les apreciement pour chaque note etl dans le troisieme est la ou en va enregistrer les cordonnes des stagieres   et leur notes et tout ca trier selon la note de chaque stagiere
et merci d'avance  pour votre aide
merci pour votre aide
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
2 avril 2009 à 15:55
Bienvenue,

Déterrage de topic avec une question qui n'a rien à voir. On parlait de moyenne de temps, pas de moyennes de notes. Personne à part ceux abonné à cette discution ne liront ton message.

Merci de reposer la question dans une nouvelle discussion en choisissant bien le thème (Quelque chose comme VB.NET et VB2005 / Divers /Débutants ou Visual Basic 6 / Divers / Débutants en fonction de ton environnement).

Et avec un titre descriptif svp, pas "help" ou "question".

D'autre part ta question est trop vague. On ne peut pas faire le code à ta place...

Merci.
0
cs_lolita111 Messages postés 5 Date d'inscription jeudi 12 février 2009 Statut Membre Dernière intervention 2 avril 2009
2 avril 2009 à 16:17
slt tout le monde  je suis encore debutante dans  la programmaiton et je veux un programme qui calcule la moyenne generale des stagieres (bulltin de notes) en vb.net et en mode windows
et merci d'anance
merci pour votre aide
0
cs_lolita111 Messages postés 5 Date d'inscription jeudi 12 février 2009 Statut Membre Dernière intervention 2 avril 2009
2 avril 2009 à 16:21
bonour mes chers amies je suis encore debutante dans la programmaton et je veux un programme qui calcule le salaire des employers (bulltin de paie) en vb.net et en mode windows
merci  boucoup
merci pour votre aide
0
cs_lolita111 Messages postés 5 Date d'inscription jeudi 12 février 2009 Statut Membre Dernière intervention 2 avril 2009
2 avril 2009 à 16:25
slt mes amies je suis encore debutante das la programmation et   je  ne sais pas travailler avec la controle listview  je veux un code  avec ce controle
et merci
merci pour votre aide
0
cs_lolita111 Messages postés 5 Date d'inscription jeudi 12 février 2009 Statut Membre Dernière intervention 2 avril 2009
2 avril 2009 à 16:29
bonjour mes amies je suis encore debutante dans la programmaton et je ne sais pas travailler avec la feuille ecran de demarage merci de m'envoyer un code concernent cette feuille
merci.
merci pour votre aide
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
2 avril 2009 à 16:32
Désolé, nous ne sommes pas là pour faire les exercice des autres gratuitement.

On ne peut pas non plus donner des cours particuliers de programmation à tout le monde.

Nous sommes là pour aider à résoudre des problème précis sur des sujets précis, en répondant à des questions précises et détaillées.

Mais on peut quand même parfois aussi donner quelques pistes.

Par "reposer la question dans une nouvelle discussion" j'entendais créer une nouvelle discussion.

Pour ce faire, il faut cliquer sur "Poser une question" qui se trouve sous "Forum", sur la gauche.

On peut ensuite donner un titre (Descriptif), sélectionner le thème (Dans ton cas : VB.NET et VB2005 / Divers /Débutants).

Et bien sûr écrire le message.

Je t'invite aussi à consulter le règlement. Bien suivre le règlement, c'est multiplier par 100 les chances d'obtenir des réponses pertinentes.
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
2 avril 2009 à 16:58
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
2 avril 2009 à 16:59
Heu fputs dans ton cas.
0
Rejoignez-nous