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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 '***
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
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
'***
Merci de poster les réponses au groupe afin d'en faire profiter à tous
"Jean Fournier" <bidule@sympa.ca> wrote in message
news:2tTkb.494$VQ3.121327@news20.bellglobal.com...
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.
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 '***
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
Jean Fournier
Merci beaucoup c'est tout à fait ce que je désirais...
Merci beaucoup c'est tout à fait ce que je désirais...