OVH Cloud OVH Cloud

Conversion de String à Time

2 réponses
Avatar
Jean Fournier
Salut,

j'ai un programme avec qui je communique en DDE qui me transmet la sortie
d'un Timer(compteur à rebours) comme suit:
T#0d0h0m0s0ms Exemple: T#0d0h5m30s0ms ensuite T#0d0h5m29s0ms ainsi de
suite. J'aimerais donc pouvoir convertir le tout au format Time ou bien
Integer pour m'en servir dans un progressbar.

Merci!

JF

2 réponses

Avatar
Zoury
Bonjour Jean! :O)

Voici une fonction qui convertit le tout en milliseconde (Long). Tu devrais
pouvoir en faire ce que tu veux..

'***
Option Explicit

Private Sub Main()

' T#0d0h0m0s0ms
' T#0d0h5m30s0ms
' T#0d0h5m29s0ms
Dim s As String

s = "T#0d0h0m29s0ms"
Debug.Print GetMilliseconds(s)

s = "T#0d0h5m29s0ms"
Debug.Print GetMilliseconds(s)

s = "T#0d12h5m29s0ms"
Debug.Print GetMilliseconds(s)

s = "T#2d12h5m29s0ms"
Debug.Print GetMilliseconds(s)

End Sub

Private Function GetMilliseconds(ByVal sTimeString As String) As Long

Dim sParts() As String
Dim i As Long

' On replace les caractères par des espaces
For i = 1 To Len(sTimeString)
If (Not Mid$(sTimeString, i, 1) Like "#") Then Mid$(sTimeString, i,
1) = " "
Next i

' On Split la chaine trimmée dans un tableau
' afin de conserver les chiffres
sParts = Split(Trim$(sTimeString), " ")

' évite les overflows..
On Error Resume Next
GetMilliseconds = (CLng(sParts(0)) * 86400000) + _
(CLng(sParts(1)) * 3600000) + _
(CLng(sParts(2)) * 60000) + _
(CLng(sParts(3)) * 1000) + _
CLng(sParts(4))
End Function
'***

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
"Jean Fournier" wrote in message
news:2tTkb.494$
Salut,

j'ai un programme avec qui je communique en DDE qui me transmet la sortie
d'un Timer(compteur à rebours) comme suit:
T#0d0h0m0s0ms Exemple: T#0d0h5m30s0ms ensuite T#0d0h5m29s0ms ainsi de
suite. J'aimerais donc pouvoir convertir le tout au format Time ou bien
Integer pour m'en servir dans un progressbar.

Merci!

JF




Avatar
Jean Fournier
Merci beaucoup c'est tout à fait ce que je désirais...