OVH Cloud OVH Cloud

au sujet du timer

21 réponses
Avatar
squat541
salut
g un prog qui fait des analyses reseau, g mis un timer pour connaitre le
temps qui met, mais le prob est qu'il ne marche pas bien, il s'arrete puis
decompte le temps et n'affihe pas le vrai mais un temps bidon je pense qui
interagit avec le prog

10 réponses

1 2 3
Avatar
Driss HANIB
"squat541" a écrit dans le message de
news:
salut
g un prog qui fait des analyses reseau, g mis un timer pour connaitre



Tiens, à suivre le contenu d'une classe cBenchMark.cls
trouvée sur le net, qui te permettra de faire une évaluation digne de ce nom

Pour l'utiliser tu fais

MaClasse.Start

' tu fais ton travail
puis à la fin tu fais

MaClasse.Finish

et
Temps = MaClasse.Get ElapsedTime
et je crois que tu as le temps en ms

'******* début classe *************
Option Explicit

' Name: Benchmark Your Routine
' Author: Chong Long Choo
' Email:
' Date: 14 September 1999

'<--------------------------Disclaimer---------------->
'
'This sample is free. You can use the sample in any form. Use
'this sample at your own risk! I have no warranty for this
'sample.
'
'<--------------------------Disclaimer------------------------>

'How to use
'---------------------------------------------------------------------------
------
' Dim i As Double
' Dim objBenchMark As clsBenchMark
' Set objBenchMark = New clsBenchMark
' objBenchMark.Start
' Do
' i = i + 1
' Loop Until i = 100000
' objBenchMark.Finish
' Debug.Print objBenchMark.ElapsedTime
' Set objBenchMark = Nothing

Private mStartTime As Long
Private mFinishTime As Long
Private mElapsedTime As Long

Private Type LARGE_INTEGER
lowpart As Long
highpart As Long
End Type

Private LIPerfFrequency As LARGE_INTEGER
Private LICounterStart As LARGE_INTEGER
Private LICounterEnd As LARGE_INTEGER
Private LIcrFrequency As Currency
Private bEnabled As Boolean

Private Declare Function QueryPerformanceCounter Lib "kernel32" _
(lpPerformanceCount As LARGE_INTEGER) As Long

Private Declare Function QueryPerformanceFrequency Lib "kernel32" _
(lpFrequency As LARGE_INTEGER) As Long

Private Declare Function timeGetTime Lib "winmm.dll" () As Long


Public Sub Start()
If bEnabled Then
Call QueryPerformanceCounter(LICounterStart)
Else
mStartTime = timeGetTime
End If
End Sub

Public Sub Finish()
If bEnabled Then
Call QueryPerformanceCounter(LICounterEnd)
Else
mFinishTime = timeGetTime
mElapsedTime = mFinishTime - mStartTime
End If
End Sub

Public Property Get ElapsedTime() As Double
Dim dAns As Double

If bEnabled Then
Dim crStart As Currency
Dim crStop As Currency
Dim crFrequency As Currency

crStart = Large2Currency(LICounterStart)
crStop = Large2Currency(LICounterEnd)
dAns = ((crStop - crStart) / LIcrFrequency)
Else
dAns = mElapsedTime / 1000
End If

ElapsedTime = Format(dAns, "###########0.0######")
End Property

Private Function Large2Currency(largeInt As LARGE_INTEGER) As Currency
If (largeInt.lowpart) > 0& Then
Large2Currency = largeInt.lowpart
Else
Large2Currency = CCur(2 ^ 31) + CCur(largeInt.lowpart And
&H7FFFFFFF)
End If
Large2Currency = Large2Currency + largeInt.highpart * CCur(2 ^ 32)
End Function

Private Sub Class_Initialize()
bEnabled = QueryPerformanceFrequency(LIPerfFrequency)
If bEnabled Then
LIcrFrequency = Large2Currency(LIPerfFrequency)
End If
End Sub

Private Sub Class_Terminate()
bEnabled = False
mStartTime = 0
mFinishTime = 0
mElapsedTime = 0
End Sub

'********* fin classe ***********
Avatar
squat541
alors j'ouvre un module cpier coller
au debut de mon prog MaClasse.Start
et a la fin MaClasse.Finish
pui dans l'interface graphique j'ouvre un texte pour afficher
et je text8.text=MaClasse.Get ElapsedTime
c bien ca,mais lorsque j'execute message d'erreur "un objet est requis" sur
MaClasse.Start

"Driss HANIB" a écrit :

"squat541" a écrit dans le message de
news:
> salut
> g un prog qui fait des analyses reseau, g mis un timer pour connaitre

Tiens, à suivre le contenu d'une classe cBenchMark.cls
trouvée sur le net, qui te permettra de faire une évaluation digne de ce nom

Pour l'utiliser tu fais

MaClasse.Start

' tu fais ton travail
puis à la fin tu fais

MaClasse.Finish

et
Temps = MaClasse.Get ElapsedTime
et je crois que tu as le temps en ms

'******* début classe *************
Option Explicit

' Name: Benchmark Your Routine
' Author: Chong Long Choo
' Email:
' Date: 14 September 1999

'<--------------------------Disclaimer---------------->
'
'This sample is free. You can use the sample in any form. Use
'this sample at your own risk! I have no warranty for this
'sample.
'
'<--------------------------Disclaimer------------------------>

'How to use
'---------------------------------------------------------------------------
------
' Dim i As Double
' Dim objBenchMark As clsBenchMark
' Set objBenchMark = New clsBenchMark
' objBenchMark.Start
' Do
' i = i + 1
' Loop Until i = 100000
' objBenchMark.Finish
' Debug.Print objBenchMark.ElapsedTime
' Set objBenchMark = Nothing

Private mStartTime As Long
Private mFinishTime As Long
Private mElapsedTime As Long

Private Type LARGE_INTEGER
lowpart As Long
highpart As Long
End Type

Private LIPerfFrequency As LARGE_INTEGER
Private LICounterStart As LARGE_INTEGER
Private LICounterEnd As LARGE_INTEGER
Private LIcrFrequency As Currency
Private bEnabled As Boolean

Private Declare Function QueryPerformanceCounter Lib "kernel32" _
(lpPerformanceCount As LARGE_INTEGER) As Long

Private Declare Function QueryPerformanceFrequency Lib "kernel32" _
(lpFrequency As LARGE_INTEGER) As Long

Private Declare Function timeGetTime Lib "winmm.dll" () As Long


Public Sub Start()
If bEnabled Then
Call QueryPerformanceCounter(LICounterStart)
Else
mStartTime = timeGetTime
End If
End Sub

Public Sub Finish()
If bEnabled Then
Call QueryPerformanceCounter(LICounterEnd)
Else
mFinishTime = timeGetTime
mElapsedTime = mFinishTime - mStartTime
End If
End Sub

Public Property Get ElapsedTime() As Double
Dim dAns As Double

If bEnabled Then
Dim crStart As Currency
Dim crStop As Currency
Dim crFrequency As Currency

crStart = Large2Currency(LICounterStart)
crStop = Large2Currency(LICounterEnd)
dAns = ((crStop - crStart) / LIcrFrequency)
Else
dAns = mElapsedTime / 1000
End If

ElapsedTime = Format(dAns, "###########0.0######")
End Property

Private Function Large2Currency(largeInt As LARGE_INTEGER) As Currency
If (largeInt.lowpart) > 0& Then
Large2Currency = largeInt.lowpart
Else
Large2Currency = CCur(2 ^ 31) + CCur(largeInt.lowpart And
&H7FFFFFFF)
End If
Large2Currency = Large2Currency + largeInt.highpart * CCur(2 ^ 32)
End Function

Private Sub Class_Initialize()
bEnabled = QueryPerformanceFrequency(LIPerfFrequency)
If bEnabled Then
LIcrFrequency = Large2Currency(LIPerfFrequency)
End If
End Sub

Private Sub Class_Terminate()
bEnabled = False
mStartTime = 0
mFinishTime = 0
mElapsedTime = 0
End Sub

'********* fin classe ***********





Avatar
LE TROLL
Salut si c'est en VB, (de tête), tu as le timer ou
par exemple des API, comme suit:

TIMER
'mettre objet Timer1
Dim temps As Double
Sub Form_Load()
temps = 0
Timer1.Interval = 1000
Timer1.Enabled = True ' début de ton comptage
End Sub
Sub Timer1_Timer()
temps = temps + 1 ' +1'
If condition Then ' ton comptage se termine
Timer1.Enabled = False ' arrêt timer
MsgBox temps 'affichage du temps
End If
End Sub
-----------------------------

API
Private Declare Function GetTickCount Lib "Kernel32" () As
Long
Dim t_debut As Double
Dim t_ecoule As Double
Sub Form_Load()
t_debut = GetTickCount() 'début comptage
End Sub
Sub Command1_Click()
t_ecoule = GetTickCount() - t_debut
MsgBox t_ecoule ' temps écoulé
End Sub
----------------


"squat541" a écrit dans
le message de news:

salut
g un prog qui fait des analyses reseau, g mis un timer
pour connaitre le
temps qui met, mais le prob est qu'il ne marche pas bien,
il s'arrete puis
decompte le temps et n'affihe pas le vrai mais un temps
bidon je pense qui
interagit avec le prog


Avatar
squat541
desomé troll mais la premiere il ne se passe rient et la deuxieme message
d'erreur
"fichier introuvable: kernel"

"LE TROLL" wrote:


Salut si c'est en VB, (de tête), tu as le timer ou
par exemple des API, comme suit:

TIMER
'mettre objet Timer1
Dim temps As Double
Sub Form_Load()
temps = 0
Timer1.Interval = 1000
Timer1.Enabled = True ' début de ton comptage
End Sub
Sub Timer1_Timer()
temps = temps + 1 ' +1'
If condition Then ' ton comptage se termine
Timer1.Enabled = False ' arrêt timer
MsgBox temps 'affichage du temps
End If
End Sub
-----------------------------

API
Private Declare Function GetTickCount Lib "Kernel32" () As
Long
Dim t_debut As Double
Dim t_ecoule As Double
Sub Form_Load()
t_debut = GetTickCount() 'début comptage
End Sub
Sub Command1_Click()
t_ecoule = GetTickCount() - t_debut
MsgBox t_ecoule ' temps écoulé
End Sub
----------------


"squat541" a écrit dans
le message de news:

> salut
> g un prog qui fait des analyses reseau, g mis un timer
> pour connaitre le
> temps qui met, mais le prob est qu'il ne marche pas bien,
> il s'arrete puis
> decompte le temps et n'affihe pas le vrai mais un temps
> bidon je pense qui
> interagit avec le prog





Avatar
Driss HANIB
il faut mieux créer un module de classe !

tu recopies tout ce texte

tu donnes à ta classe le nom de cBenchmark (par exemple, c'était son nom
initial)

puis dans ta feuille ou dans la partie du prog que tu veux tester tu mets

Dim MaClasse as cBenchmark

set MaClasse = new cBenchmark

' tu marque le début du décompte
MaClasse.Start

' tu fais ton prog

à la fin tu fais
MaClasse.Finish

pour voir le temps passé tu fais

TempsPassé = MaClasse.Get ElapsedTime

et voilà


"squat541" a écrit dans le message de
news:
alors j'ouvre un module cpier coller
au debut de mon prog MaClasse.Start
et a la fin MaClasse.Finish
pui dans l'interface graphique j'ouvre un texte pour afficher
et je text8.text=MaClasse.Get ElapsedTime
c bien ca,mais lorsque j'execute message d'erreur "un objet est requis"


sur
MaClasse.Start

"Driss HANIB" a écrit :

> "squat541" a écrit dans le message


de
> news:
> > salut
> > g un prog qui fait des analyses reseau, g mis un timer pour connaitre
>
> Tiens, à suivre le contenu d'une classe cBenchMark.cls
> trouvée sur le net, qui te permettra de faire une évaluation digne de ce


nom
>
> Pour l'utiliser tu fais
>
> MaClasse.Start
>
> ' tu fais ton travail
> puis à la fin tu fais
>
> MaClasse.Finish
>
> et
> Temps = MaClasse.Get ElapsedTime
> et je crois que tu as le temps en ms
>
> '******* début classe *************
> Option Explicit
>
> ' Name: Benchmark Your Routine
> ' Author: Chong Long Choo
> ' Email:
> ' Date: 14 September 1999
>
> '<--------------------------Disclaimer---------------->
> '
> 'This sample is free. You can use the sample in any form. Use
> 'this sample at your own risk! I have no warranty for this
> 'sample.
> '
> '<--------------------------Disclaimer------------------------>
>
> 'How to use
>


'---------------------------------------------------------------------------
> ------
> ' Dim i As Double
> ' Dim objBenchMark As clsBenchMark
> ' Set objBenchMark = New clsBenchMark
> ' objBenchMark.Start
> ' Do
> ' i = i + 1
> ' Loop Until i = 100000
> ' objBenchMark.Finish
> ' Debug.Print objBenchMark.ElapsedTime
> ' Set objBenchMark = Nothing
>
> Private mStartTime As Long
> Private mFinishTime As Long
> Private mElapsedTime As Long
>
> Private Type LARGE_INTEGER
> lowpart As Long
> highpart As Long
> End Type
>
> Private LIPerfFrequency As LARGE_INTEGER
> Private LICounterStart As LARGE_INTEGER
> Private LICounterEnd As LARGE_INTEGER
> Private LIcrFrequency As Currency
> Private bEnabled As Boolean
>
> Private Declare Function QueryPerformanceCounter Lib "kernel32" _
> (lpPerformanceCount As LARGE_INTEGER) As


Long
>
> Private Declare Function QueryPerformanceFrequency Lib "kernel32" _
> (lpFrequency As LARGE_INTEGER) As Long
>
> Private Declare Function timeGetTime Lib "winmm.dll" () As Long
>
>
> Public Sub Start()
> If bEnabled Then
> Call QueryPerformanceCounter(LICounterStart)
> Else
> mStartTime = timeGetTime
> End If
> End Sub
>
> Public Sub Finish()
> If bEnabled Then
> Call QueryPerformanceCounter(LICounterEnd)
> Else
> mFinishTime = timeGetTime
> mElapsedTime = mFinishTime - mStartTime
> End If
> End Sub
>
> Public Property Get ElapsedTime() As Double
> Dim dAns As Double
>
> If bEnabled Then
> Dim crStart As Currency
> Dim crStop As Currency
> Dim crFrequency As Currency
>
> crStart = Large2Currency(LICounterStart)
> crStop = Large2Currency(LICounterEnd)
> dAns = ((crStop - crStart) / LIcrFrequency)
> Else
> dAns = mElapsedTime / 1000
> End If
>
> ElapsedTime = Format(dAns, "###########0.0######")
> End Property
>
> Private Function Large2Currency(largeInt As LARGE_INTEGER) As Currency
> If (largeInt.lowpart) > 0& Then
> Large2Currency = largeInt.lowpart
> Else
> Large2Currency = CCur(2 ^ 31) + CCur(largeInt.lowpart And
> &H7FFFFFFF)
> End If
> Large2Currency = Large2Currency + largeInt.highpart * CCur(2 ^ 32)
> End Function
>
> Private Sub Class_Initialize()
> bEnabled = QueryPerformanceFrequency(LIPerfFrequency)
> If bEnabled Then
> LIcrFrequency = Large2Currency(LIPerfFrequency)
> End If
> End Sub
>
> Private Sub Class_Terminate()
> bEnabled = False
> mStartTime = 0
> mFinishTime = 0
> mElapsedTime = 0
> End Sub
>
> '********* fin classe ***********
>
>
>


Avatar
Driss HANIB
Ok : il faut bien créer une CLASSE
c'est cela l'objet requis..

Cette façon de faire n'est en principe pas retardé par de gros travaux..
Contrairement au Timer qui ralentit si ton travail prend beaucoup de
ressources..

Driss

"squat541" a écrit dans le message de
news:
alors j'ouvre un module cpier coller
au debut de mon prog MaClasse.Start
et a la fin MaClasse.Finish
pui dans l'interface graphique j'ouvre un texte pour afficher
et je text8.text=MaClasse.Get ElapsedTime
c bien ca,mais lorsque j'execute message d'erreur "un objet est requis"


sur
MaClasse.Start

"Driss HANIB" a écrit :

> "squat541" a écrit dans le message


de
> news:
> > salut
> > g un prog qui fait des analyses reseau, g mis un timer pour connaitre
>
> Tiens, à suivre le contenu d'une classe cBenchMark.cls
> trouvée sur le net, qui te permettra de faire une évaluation digne de ce


nom
>
> Pour l'utiliser tu fais
>
> MaClasse.Start
>
> ' tu fais ton travail
> puis à la fin tu fais
>
> MaClasse.Finish
>
> et
> Temps = MaClasse.Get ElapsedTime
> et je crois que tu as le temps en ms
>
> '******* début classe *************
> Option Explicit
>
> ' Name: Benchmark Your Routine
> ' Author: Chong Long Choo
> ' Email:
> ' Date: 14 September 1999
>
> '<--------------------------Disclaimer---------------->
> '
> 'This sample is free. You can use the sample in any form. Use
> 'this sample at your own risk! I have no warranty for this
> 'sample.
> '
> '<--------------------------Disclaimer------------------------>
>
> 'How to use
>


'---------------------------------------------------------------------------
> ------
> ' Dim i As Double
> ' Dim objBenchMark As clsBenchMark
> ' Set objBenchMark = New clsBenchMark
> ' objBenchMark.Start
> ' Do
> ' i = i + 1
> ' Loop Until i = 100000
> ' objBenchMark.Finish
> ' Debug.Print objBenchMark.ElapsedTime
> ' Set objBenchMark = Nothing
>
> Private mStartTime As Long
> Private mFinishTime As Long
> Private mElapsedTime As Long
>
> Private Type LARGE_INTEGER
> lowpart As Long
> highpart As Long
> End Type
>
> Private LIPerfFrequency As LARGE_INTEGER
> Private LICounterStart As LARGE_INTEGER
> Private LICounterEnd As LARGE_INTEGER
> Private LIcrFrequency As Currency
> Private bEnabled As Boolean
>
> Private Declare Function QueryPerformanceCounter Lib "kernel32" _
> (lpPerformanceCount As LARGE_INTEGER) As


Long
>
> Private Declare Function QueryPerformanceFrequency Lib "kernel32" _
> (lpFrequency As LARGE_INTEGER) As Long
>
> Private Declare Function timeGetTime Lib "winmm.dll" () As Long
>
>
> Public Sub Start()
> If bEnabled Then
> Call QueryPerformanceCounter(LICounterStart)
> Else
> mStartTime = timeGetTime
> End If
> End Sub
>
> Public Sub Finish()
> If bEnabled Then
> Call QueryPerformanceCounter(LICounterEnd)
> Else
> mFinishTime = timeGetTime
> mElapsedTime = mFinishTime - mStartTime
> End If
> End Sub
>
> Public Property Get ElapsedTime() As Double
> Dim dAns As Double
>
> If bEnabled Then
> Dim crStart As Currency
> Dim crStop As Currency
> Dim crFrequency As Currency
>
> crStart = Large2Currency(LICounterStart)
> crStop = Large2Currency(LICounterEnd)
> dAns = ((crStop - crStart) / LIcrFrequency)
> Else
> dAns = mElapsedTime / 1000
> End If
>
> ElapsedTime = Format(dAns, "###########0.0######")
> End Property
>
> Private Function Large2Currency(largeInt As LARGE_INTEGER) As Currency
> If (largeInt.lowpart) > 0& Then
> Large2Currency = largeInt.lowpart
> Else
> Large2Currency = CCur(2 ^ 31) + CCur(largeInt.lowpart And
> &H7FFFFFFF)
> End If
> Large2Currency = Large2Currency + largeInt.highpart * CCur(2 ^ 32)
> End Function
>
> Private Sub Class_Initialize()
> bEnabled = QueryPerformanceFrequency(LIPerfFrequency)
> If bEnabled Then
> LIcrFrequency = Large2Currency(LIPerfFrequency)
> End If
> End Sub
>
> Private Sub Class_Terminate()
> bEnabled = False
> mStartTime = 0
> mFinishTime = 0
> mElapsedTime = 0
> End Sub
>
> '********* fin classe ***********
>
>
>


Avatar
LE TROLL
Salut 541,

Pour le 1er cas, tente ça:
Timer1...
If condition Then ' ton comptage se termine
DOEVENTS
-------------
Pour le second cas il faut mettre Kernel32.dll
dans c:windowssystem32
Si tu n'as pas, récupères sur le net...
-------------

"squat541" a écrit dans
le message de news:

desomé troll mais la premiere il ne se passe rient et la
deuxieme message
d'erreur
"fichier introuvable: kernel"

"LE TROLL" wrote:


Salut si c'est en VB, (de tête), tu as le timer
ou
par exemple des API, comme suit:

TIMER
'mettre objet Timer1
Dim temps As Double
Sub Form_Load()
temps = 0
Timer1.Interval = 1000
Timer1.Enabled = True ' début de ton comptage
End Sub
Sub Timer1_Timer()
temps = temps + 1 ' +1'
If condition Then ' ton comptage se termine
Timer1.Enabled = False ' arrêt timer
MsgBox temps 'affichage du temps
End If
End Sub
-----------------------------

API
Private Declare Function GetTickCount Lib "Kernel32" ()
As
Long
Dim t_debut As Double
Dim t_ecoule As Double
Sub Form_Load()
t_debut = GetTickCount() 'début comptage
End Sub
Sub Command1_Click()
t_ecoule = GetTickCount() - t_debut
MsgBox t_ecoule ' temps écoulé
End Sub
----------------


"squat541" a écrit
dans
le message de news:

> salut
> g un prog qui fait des analyses reseau, g mis un timer
> pour connaitre le
> temps qui met, mais le prob est qu'il ne marche pas
> bien,
> il s'arrete puis
> decompte le temps et n'affihe pas le vrai mais un temps
> bidon je pense qui
> interagit avec le prog







Avatar
scraper
Bonjour squat541, dans le message
news:
tu disais :


desomé troll mais la premiere il ne se passe rient et la deuxieme
message d'erreur
"fichier introuvable: kernel"



c'est normal, voyons : il fait son code de tête (et il le vérifie même pas !
:-(




--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper
Avatar
scraper
Bonjour LE TROLL, dans le message
news:%
tu disais :


Pour le second cas il faut mettre Kernel32.dll
dans c:windowssystem32
Si tu n'as pas, récupères sur le net...




ça, c'est le plus gros troll que tu aies pu tenter !
une bêtise à ta (dé)mesure ...

trouve moi un ordi fonctionnant sous windows et qui arrive à lancer windows
sans ce fichier ? :-(

(fais donc une recherche google sur kernel32.dll en attendant, ça nous fera
des vacances




--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper
Avatar
LE TROLL
Le petit, regardes sa réponse, il dit qu'il n'a pas, alors,
c'est à lui qu'il faut le dire...
-----------

"scraper" a écrit dans le message de
news:
Bonjour LE TROLL, dans le message
news:%
tu disais :


Pour le second cas il faut mettre Kernel32.dll
dans c:windowssystem32
Si tu n'as pas, récupères sur le net...




ça, c'est le plus gros troll que tu aies pu tenter !
une bêtise à ta (dé)mesure ...

trouve moi un ordi fonctionnant sous windows et qui arrive
à lancer windows sans ce fichier ? :-(

(fais donc une recherche google sur kernel32.dll en
attendant, ça nous fera des vacances




--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper


1 2 3