FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Mesure d'une durée Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Mesure d'une durée Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Mesure d'une durée Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Mesure d'une durée Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Mesure d'une durée Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Mesure d'une durée Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Mesure d'une durée Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Mesure d'une durée Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Mesure d'une durée Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Mesure d'une durée Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Mesure d'une durée Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Mesure d'une durée Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Mesure d'une durée Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Mesure d'une durée Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Mesure d'une durée Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-25%
Le deal à ne pas rater :
PC Portable Gamer 16,1” HP Victus 16 – 16 Go /512 Go
749.99 € 999.99 €
Voir le deal

 

 Mesure d'une durée

Aller en bas 
3 participants
AuteurMessage
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Mesure d'une durée Empty
MessageSujet: Mesure d'une durée   Mesure d'une durée EmptyDim 4 Déc 2011 - 14:21

Avec Panoramic, on n'a pas la possibilité de mesurer des durée avec une précision inférieure à la seconde (instruction TIME).
Nardo a fait une DLL qui permet une précision meilleure, mais il faut la dll...
Il me revient une possibilité avec ms-dos (eh oui, je suis un nostalgique du vieux temps).
En effet, la commande TIME en ligne de commande donne l'heure avec une précision du centième de seconde. L'inconvénient c'est qu'elle attend une réponse (soit la touche Enter, soit la nouvelle heure qu'on veut modifier), mais avec un peu d'astuce on peut y remédier:
Code:
DIM fm$, i: fm$ = "c:\temp\heure.txt"
EXECUTE "Cmd.exe /C ECHO.| TIME >"+fm$
FOR i = 1 TO 500000: NEXT i
EXECUTE_WAIT "Cmd.exe /C ECHO.| TIME >>"+fm$
LIST 1000: HIDE 1000
FILE_LOAD 1000, fm$: FILE_DELETE fm$
PRINT MID$(ITEM_READ$(1000, 1), 24, 11): ' début
PRINT MID$(ITEM_READ$(1000, 3), 24, 11): '  fin
DELETE 1000
END
Le "ECHO." (collés) est enchaîné (fonction 'pipe': "|")après le TIME et simule une ligne vide (ou appui sur Enter).
Il suffit ensuite d'exploiter le résultat dans le fichier fm$ (ici simplement affiché).

L'appel à cmd.exe prend du temps (en termes de millisecondes), mais en première approximation on peut estimer que ça prend le même temps pour les deux appels, donc que ça s'annule.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Mesure d'une durée Empty
MessageSujet: Re: Mesure d'une durée   Mesure d'une durée EmptyDim 4 Déc 2011 - 15:25

Bonjour JL35,

Oui c'est une autre façon de faire...
Wink

PS: Tu peux remplacer le LIST par un DLIST (ça évite le HIDE...)
Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Mesure d'une durée Empty
MessageSujet: Re: Mesure d'une durée   Mesure d'une durée EmptyDim 4 Déc 2011 - 15:42

Salut Nardo. Tu as raison. Comme toujours. Ca m'énerve ! Suspect
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Mesure d'une durée Empty
MessageSujet: re   Mesure d'une durée EmptyDim 4 Déc 2011 - 18:24

Tu pourrais essayer de jouer avec un timer pour tes millisecondes .......
( c'est juste une idée jetée en l'air Laughing )
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Mesure d'une durée Empty
MessageSujet: Re: Mesure d'une durée   Mesure d'une durée EmptyDim 4 Déc 2011 - 18:29

Allez ygeronimi, concrétise ton idée avant qu'elle retombe !
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Mesure d'une durée Empty
MessageSujet: Re: Mesure d'une durée   Mesure d'une durée EmptyLun 5 Déc 2011 - 1:21

@ jl35 :

ce devrait etre une base........ Laughing

Code:
dim a$ , b$,i,cs,d$
label tps , affich,stop_temps ,calc

height 0,200:width 0,250
edit 1
timer 2 :timer_interval 2,10 : timer_off 2  :on_timer 2,affich
button 3:top 3,20:caption 3,"Start":on_click 3,stop_temps
button 5:top 5,45:caption 5,"End":inactive 5:  on_click 5,stop_temps
alpha 4:top 4,30:left 4,120:caption 4,"00:00:00,00"
alpha 6:top 6,55:left 6,120:caption 6,"00:00:00,00"
alpha 7:top 7,80:left 7,120:caption 7,"00:00:00,00"
gosub tps
end


tps:
a$= time$
b$=",00"
while a$=time$
text 1, a$+b$
end_while
timer_on 2
return

affich:
cs=cs+1
if cs<10
 b$=",0"+str$(cs)
else
 if cs<99
  b$=","+str$(cs)
 else
  cs=0
  b$=",0"+str$(cs)
 end_if
end_if
d$=time$+b$
text 1,d$
return

stop_temps:
if clicked(3)=1
 inactive 3
 active 5
 caption 4,d$
 caption 6,"00:00:00,00"
else
 inactive 5
 active 3
 caption 6,d$
 gosub calc
end_if
return

calc:
caption 7,"Pas eu le temps !"
return

ceci dit , il y a un souci avec l'affichage les secondes vont plus vite que les dixièmes scratch
y'aurait il un decalage de temps entre " Time$" et le "Timer" scratch


Suspect
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Mesure d'une durée Empty
MessageSujet: Re: Mesure d'une durée   Mesure d'une durée EmptyLun 5 Déc 2011 - 4:07

Hello Ygeronimi ! Very Happy
Pour rappeler le contexte regarde ceci

Cependant, en chipotant un peu, tu as soulevé une chose :
Je ne suis pas sûr que la base de temps des timers soit correcte, en faisant cet essai :
Code:
DLL_ON "bench.dll" : LABEL EndProg : ON_CLOSE 0,EndProg
DIM t,Duree : LABEL cpt : t = DLL_CALL0("GetCount")+1000
timer 2:timer_interval 2,100:on_timer 2,cpt : print "Fermez la fenêtre..."
END
EndProg:
  MESSAGE STR$(Duree)+"ms": DLL_OFF
TERMINATE
cpt:
  Duree = MAX(Duree,(DLL_CALL0("GetCount")-t))
  t = DLL_CALL0("GetCount")
return
j'obtiens pour 100 ms -> 110ms
même si les appels à la dll prend du temps et provoque un décalage, 10ms (1er appel dll+MAX() ) me parait excessif...
mais je chipote, je chipote... c'est peut-être du au temps d'interprétation des commandes ? Wink
Pour la plupart de nos applics ce n'est pas vraiment important...
L'essentiel c'est que ce décalage soit constant.
Sur mon PC, la base de temps varie entre 110 et 109ms...
Panoramic n'est pas dédié à de la prog de "haute voltige", et c'est largement suffisant pour ce que nous en faisons... Wink


Revenir en haut Aller en bas
http://nardo26.lescigales.org
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Mesure d'une durée Empty
MessageSujet: Re   Mesure d'une durée EmptyLun 5 Déc 2011 - 10:25

@ Nardo

Comme tu dis l'essentiel est que le decalage soit constant et à ce momment là , on peut essayer dele récupérer sur le réglage de "Timer_interval".

si c'est un écart de 10 ms : Timer_interval X, 9 au lieu de 10..... Laughing

bonne journée !
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Mesure d'une durée Empty
MessageSujet: re   Mesure d'une durée EmptyLun 5 Déc 2011 - 13:22

Une petite évolution....
Code:
dim a$ , b$,i,cs,d$
dim t$,t1$,t2$
dim e,f,g,h
dim e1,f1,g1,h1
dim e2,f2,g2,h2
dim td,tf,diff
dim e$,f$,g$,h$
label tps , affich,stop_temps ,calc

height 0,200:width 0,250
edit 1
timer 2 :timer_interval 2,9 : timer_off 2  :on_timer 2,affich
button 3:top 3,20:caption 3,"Start":on_click 3,stop_temps
button 5:top 5,45:caption 5,"End":inactive 5:  on_click 5,stop_temps
alpha 4:top 4,30:left 4,120:caption 4,"00:00:00,00"
alpha 6:top 6,55:left 6,120:caption 6,"00:00:00,00"
alpha 7:top 7,80:left 7,120:caption 7,"00:00:00,00"
gosub tps
end


tps:
a$= time$
b$=",00"
while a$=time$
text 1, a$+b$
end_while
timer_on 2
return

affich:
cs=cs+1
if cs<10
 b$=",0"+str$(cs)
else
 if cs<99
  b$=","+str$(cs)
 else
  cs=0
  b$=",0"+str$(cs)
 end_if
end_if
d$=time$+b$
text 1,d$
return

stop_temps:
if clicked(3)=1
 inactive 3
 active 5
 caption 4,d$
 caption 6,"00:00:00,00"
else
 inactive 5
 active 3
 caption 6,d$
 gosub calc
end_if
return

calc:

t$=caption$(4)
e=val(left$(t$,2))
f=val(mid$(t$,4,2))
g=val(mid$(t$,7,2))
h=val(right$(t$,2))

t1$=caption$(6)
e1=val(left$(t1$,2))
f1=val(mid$(t1$,4,2))
g1=val(mid$(t1$,7,2))
h1=val(right$(t1$,2))

td=e*360000+f*6000+g*100+h
tf=e1*360000+f1*6000+g1*100+h1
diff=tf-td

  e2=int(diff/36000)

  if e2<10
  e$="0"+str$(e2)
  else
  e$=str$(e2)
  end_if

f2=int(diff/6000)
if f2<60
  if f2<10
  f$="0"+str$(f2)
  else
  f$=str$(f2)
  end_if
else
  f$="00"
end_if

g2=int(diff/100)
if g2<60
  if g2<10
  g$="0"+str$(g2)
  else
  g$=str$(g2)
  end_if
else
  g$="00"
end_if

if diff<100
 h$=str$(diff)
else
 h$="00"
end_if

caption 7,e$+":"+f$+":"+g$+","+h$
return


de temps en temps demeure un bug à l'affichage dont j'ai du mal à définir la source scratch Suspect
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Mesure d'une durée Empty
MessageSujet: Re: Mesure d'une durée   Mesure d'une durée EmptyLun 5 Déc 2011 - 13:42

Il y a quand même quelque chose qui me chiffonne dans l'utilisation du timer.
Je rappelle que dans mon exemple, il s'agissait de mesurer la durée d'exécution d'un morceau de programme pour optimisation éventuelle, en l'occurence la boucle:
FOR i = 1 TO 500000: NEXT i
Or tu lances un timer qui s'exécute et vient incrémenter un compteur tous les centièmes de seconde, et c'est ce compteur qui compte le temps.
A ma connaissance, la boucle n'est pas interruptible par le timer, autrement dit le programme timer ne s'exécutera pas une seule fois pendant le déroulement de la boucle, et le compteur ne progressera pas d'un pouce.
Ou quelque chose m'a échappé ?
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Mesure d'une durée Empty
MessageSujet: re   Mesure d'une durée EmptyLun 5 Déc 2011 - 14:19

heuuuu........
tu peux faire un "stop_temps" au depart et à la fin de ta boucle......non?
scratch
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Mesure d'une durée Empty
MessageSujet: Re: Mesure d'une durée   Mesure d'une durée EmptyLun 5 Déc 2011 - 14:57

bien sûr, mais pendant le déroulement de la boucle le timer ne passera pas, donc son compteur ne sera pas incrémenté ?

Pour ce que tu fais, c'est à dire une fonction chronomètre: mesurer le temps qui s'écoule entre deux appuis sur un bouton, ça marche, parce qu'il ne se passe rien entre ces deux appuis, le timer a tout le temps de passer et de faire son boulot.

Mais si un programme se déroule pendant le même temps, dont des parties non interruptibles comme des boucles de traitement, là le timer ne passe pas, il n'est pas déclenché !
Le timer n'est déclenché que pendant les temps d'attente du programme, quand il n'y a rien d'autre à faire et qu'il ne se passe rien d'autre.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Mesure d'une durée Empty
MessageSujet: Re: Mesure d'une durée   Mesure d'une durée EmptyLun 5 Déc 2011 - 15:54

Tout à fait !

Nardo26 a écrit:
Hello Ygeronimi ! Very Happy
Pour rappeler le contexte regarde ceci

@ygeronimi :Regarde le lien... Wink
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Mesure d'une durée Empty
MessageSujet: re   Mesure d'une durée EmptyLun 5 Déc 2011 - 19:09

Mouep..... je viens de regarder le lien et là j'avoue mes limites.... Crying or Very sad
Revenir en haut Aller en bas
Contenu sponsorisé





Mesure d'une durée Empty
MessageSujet: Re: Mesure d'une durée   Mesure d'une durée Empty

Revenir en haut Aller en bas
 
Mesure d'une durée
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
»  Ancienne mesure russe de la longueur
» En 3D, en quoi sont exprimées les unités de mesure?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: