Chronometre

Résolu
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 - 22 mai 2005 à 22:33
Nolson Messages postés 216 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 16 mars 2006 - 23 mai 2005 à 13:42
En faite je voudrai ecrire dans un edit un cronometre et indiqué les
seconde et les centieme dans un edit ( dialog ) exemple : 01:50 < 1
seconde et 50 centiemes

J'arrive pas avec les timer .J'ai essayer ca :

.timer -mh 0 1 did -ra str 12 $asctime(ss:mm)

mais sans resultat

9 réponses

Nolson Messages postés 216 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 16 mars 2006
23 mai 2005 à 13:42
PaDa : -h suffit largement en effet, je n'ai fait que reprendre la ligne de commande initiale ;-)
La précision de mIRC au niveau des timers est légendaire en effet : +ou- 10ms en gros. Ca varie beaucoup en fonction de la puissance des ordis, des autres applications qui tournent, etc...

wims : Tu peux faire comme cela par exemple pour ton formatage :

alias chrono {
set %t $ticks
.timerc -mh 0 1 chrono1
}
alias chrono1 {
did -ra str 12 $duration($int($calc(($ticks - %t) / 1000)),3) $+ $chr(58) $+ $right($int($calc(($ticks - %t) / 10)),2)
}

Là tu auras ton chrono retourné ainsi HH:MM:SS:cc
ex : Pour 0 heure 2 minutes 14 secondes et 45 centièmes ça retournera :
00:02:14:45
3
fjxokt Messages postés 840 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 25 février 2009 1
22 mai 2005 à 23:02
hum ça doit être parce que je suis fatigué mais j'ai pas compris grand chose a ton probleme,

mise a part que asctime ne retourne pas de centieme de seconde

(sinon c'est un chronometre )
0
Nolson Messages postés 216 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 16 mars 2006
22 mai 2005 à 23:07
Pour obliger à réévaluer un identifieur dans un timer tu doit mettre un "!"après le "$".
$asctime devient $!asctime
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
22 mai 2005 à 23:38
C'est simple je veux lancer un chronometre donc je vois en fait :

min:sec:mili/centieme(je sais plus):

il part de zero : 00:00:00, puis demarre

00:01:65 < 1 seconde et 65 milieme/centieme

00:02:20 < le chronometre continue

00:02:97 etc...
0

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

Posez votre question
cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
23 mai 2005 à 08:50
Bonjour,



Pour faire ca, j'ai toujours utilisé un alias :

alias thetime return $asctime(ss:mm)



Et ensuite : .timer -mh 0 1 did -ra str 12 $thetime



(La technique de Nolson devrait aussi marcher, et elle est d'ailleurs plus courte)

<hr color="#d3d3d3">Cordialement, Sorn_Drixer (Admin CodeS-SourceS)

<!--
0
Nolson Messages postés 216 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 16 mars 2006
23 mai 2005 à 09:17
Le problème c'est qu'avec $asctime tu ne pourras avoir que les secondes comme meilleure précision.
Généralement on utilise $ticks ($uptime marche aussi) pour des résultats en millisecondes.
De plus voulant un chrono, il faut que tu partes de zéro donc tu dois stocker une variable avec le $ticks de départ pour pouvoir le soustraire.

Je me souviens que moi aussi je passais par un deuxième alias, car il me semble que le $calc ne se réactulisait pas dans le timer.
Un truc du genre :

alias chrono {
set %t $ticks
.timer -mh 0 1 chrono1
}
alias chrono1 {
did -ra str 12 $calc($ticks - %t)
}

Ca devrait fonctionner, maintenant il te reste à formater ton résultat
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
23 mai 2005 à 11:37
Hum d'apres le code de nolson j'ai fait ca :

alias chrono {

set %t $ticks

.timerc -mh 0 1 chrono1

}

alias chrono1 {

did -ra str 12 $mid($calc($ticks - %t),1,1) $+ $chr(44) $+ $mid($calc($ticks - %t),2)

}

Mais cela ne marche pendant les 10 premiere secondes ou il me retourne
par exemple 1,562 mais quand on arrrivea 10 seconde il me retourne ca
par exemple : 1,0598 pour 10 seconde et 598 centieme



Il faudrai afficher en premier tout ce qu'il y a avant les 3 dernier
chiffre et ensuite mettre le 3 dernier chiffre mais avec $mid j'crois
pas que c'est faisable et avec $right j'vais essayer :)
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
23 mai 2005 à 11:47
Avec $right, J'arrive pas a retourner ce qu'il y a avant.Par ex :

$right(123456789,5) retourne 56789

et il dise que si l'on met une valeur negative ca retourne le reste mais

$right(123456789,-5) retourne 56789

Ou est le probleme :(
0
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
23 mai 2005 à 12:28
Si c'est pas $right c'est... $left ^^

Sinon utilise une division par 1000 dans un $calc, c'est plus facile non ?



Pour le code de Nolson, utilité du -mh ?? -h suffit je pense :p

D'autre part il me semble avoir lu dans des tutos d'Epsilon sur
picwin.tk que la précision de mIRC (selon les OS..) est au mieux de
5ms, en moyenne on doit s'y retrouver mais pour avoir le moins de pb
possible autant éviter de passer en dessous de 5ms ( a supposer que ce
soit exact je n'ai pas vérifié, je signale juste )



PaDa
0
Rejoignez-nous