bonjour
pour suivre l'execution d'un pgme , j'ajoute des instructions
form1.print "trace 1"
mais alors l'écran form1 ne fait pas de scrolling (defilement vers le
haut). y a t'il une prppriété qui permettrait ca ?
(en fait faire une console ... sans le debug.print)
merci de vos idées.
bonjour
pour suivre l'execution d'un pgme , j'ajoute des instructions
form1.print "trace 1"
mais alors l'écran form1 ne fait pas de scrolling (defilement vers le
haut). y a t'il une prppriété qui permettrait ca ?
(en fait faire une console ... sans le debug.print)
merci de vos idées.
bonjour
pour suivre l'execution d'un pgme , j'ajoute des instructions
form1.print "trace 1"
mais alors l'écran form1 ne fait pas de scrolling (defilement vers le
haut). y a t'il une prppriété qui permettrait ca ?
(en fait faire une console ... sans le debug.print)
merci de vos idées.
bonjour
pour suivre l'execution d'un pgme , j'ajoute des instructions
form1.print "trace 1"
mais alors l'écran form1 ne fait pas de scrolling (defilement vers le
haut). y a t'il une prppriété qui permettrait ca ?
(en fait faire une console ... sans le debug.print)
merci de vos idées.
bonjour
pour suivre l'execution d'un pgme , j'ajoute des instructions
form1.print "trace 1"
mais alors l'écran form1 ne fait pas de scrolling (defilement vers le
haut). y a t'il une prppriété qui permettrait ca ?
(en fait faire une console ... sans le debug.print)
merci de vos idées.
bonjour
pour suivre l'execution d'un pgme , j'ajoute des instructions
form1.print "trace 1"
mais alors l'écran form1 ne fait pas de scrolling (defilement vers le
haut). y a t'il une prppriété qui permettrait ca ?
(en fait faire une console ... sans le debug.print)
merci de vos idées.
Jacques93 a écrit :
[...]
Mais il aurait pu donner un lien sur les fonctions associées aux consoles
:
<http://msdn2.microsoft.com/en-us/library/ms682073(VS.85).aspx>
Jacques93 a écrit :
[...]
Mais il aurait pu donner un lien sur les fonctions associées aux consoles
:
<http://msdn2.microsoft.com/en-us/library/ms682073(VS.85).aspx>
Jacques93 a écrit :
[...]
Mais il aurait pu donner un lien sur les fonctions associées aux consoles
:
<http://msdn2.microsoft.com/en-us/library/ms682073(VS.85).aspx>
"Jacques93" wrote in message
news:
Hello Jacques,
Le hasard fait parfois bien les choses ...
J'ai du ce matin écrire une petite appli pour un client,
appli pour laquelle il me fallait un programme VB sans
forme mais avec une console ...
Un simple copy/paste de ton exemple précédent m'a évité
2 ou 3 heures de recherche! Et bien sur, tout a fonctionné
à merveille du premier coup :-)
J'ai juste enlevé les msgbox et adapté le layout de la
sortie de printf et hop, le tour était joué !
Et donc, Merci pour cet exemple simple et fonctionnel !
Bonne journée !
"Jacques93" <jacques@Nospam> wrote in message
news:O24ihB2jIHA.3780@TK2MSFTNGP06.phx.gbl...
Hello Jacques,
Le hasard fait parfois bien les choses ...
J'ai du ce matin écrire une petite appli pour un client,
appli pour laquelle il me fallait un programme VB sans
forme mais avec une console ...
Un simple copy/paste de ton exemple précédent m'a évité
2 ou 3 heures de recherche! Et bien sur, tout a fonctionné
à merveille du premier coup :-)
J'ai juste enlevé les msgbox et adapté le layout de la
sortie de printf et hop, le tour était joué !
Et donc, Merci pour cet exemple simple et fonctionnel !
Bonne journée !
"Jacques93" wrote in message
news:
Hello Jacques,
Le hasard fait parfois bien les choses ...
J'ai du ce matin écrire une petite appli pour un client,
appli pour laquelle il me fallait un programme VB sans
forme mais avec une console ...
Un simple copy/paste de ton exemple précédent m'a évité
2 ou 3 heures de recherche! Et bien sur, tout a fonctionné
à merveille du premier coup :-)
J'ai juste enlevé les msgbox et adapté le layout de la
sortie de printf et hop, le tour était joué !
Et donc, Merci pour cet exemple simple et fonctionnel !
Bonne journée !
J'avais envisagé d'implémenter, en partie, les fonctionnalités de
formattage de la fonction printf de C, cela ne s'est pas révélé
indispensable mais le nom est resté ...
J'avais envisagé d'implémenter, en partie, les fonctionnalités de
formattage de la fonction printf de C, cela ne s'est pas révélé
indispensable mais le nom est resté ...
J'avais envisagé d'implémenter, en partie, les fonctionnalités de
formattage de la fonction printf de C, cela ne s'est pas révélé
indispensable mais le nom est resté ...
"Jacques93" wrote in message
news:um2%J'avais envisagé d'implémenter, en partie, les fonctionnalités de
formattage de la fonction printf de C, cela ne s'est pas révélé
indispensable mais le nom est resté ...
Ce n'était pas indispensable pour moi non plus, mais ça me
simplifiait la vie. Le nom m'ayant inspiré,j'ai complété ton
printf en implémentant le minimum de printf de C.
Ca reste 100% compatible avec ton printf.
' Ecriture dans la console
' ======================= > Public Function printf(ByVal str As String, ParamArray arguments() As
Variant)
Dim lResult As Long
Dim cWritten As Long
Dim Data() As Byte, i As Integer
Dim output As String
Dim state As FrmtStates
Dim prm As Long
Dim prmValue As Variant
Dim letter As String
If hConsole <> 0 Then
state = WaitRegular
For i = 1 To Len(str)
letter = Mid$(str, i, 1)
Select Case state
Case WaitRegular
If letter = "%" Then
state = WaitType
ElseIf letter = "" Then
state = WaitEscChar
Else
output = output & letter
End If
Case WaitType ' Support c, d, f, s
If letter = "c" Then
If prm <= UBound(arguments()) Then
prmValue = arguments(prm)
If (Val(prmValue) > 0) Then
output = output & Chr$(Val(prmValue) Mod 256)
Else
output = output & Left$(prmValue, 1)
End If
prm = prm + 1
End If
ElseIf letter = "d" Then
If prm <= UBound(arguments()) Then
prmValue = arguments(prm)
output = output & CLng(prmValue)
End If
prm = prm + 1
ElseIf letter = "f" Then
If prm <= UBound(arguments()) Then
prmValue = arguments(prm)
output = output & CDbl(prmValue)
End If
prm = prm + 1
ElseIf letter = "s" Then
If prm <= UBound(arguments()) Then
prmValue = arguments(prm)
output = output & CStr(prmValue)
End If
prm = prm + 1
Else
output = output & letter
End If
state = WaitRegular
Case WaitEscChar ' Support n, t and
If letter = "n" Then
output = output & vbCrLf
ElseIf letter = "t" Then
output = output & vbTab
ElseIf letter = "" Then
output = output & ""
End If
state = WaitRegular
End Select
Next i
str = output
If Len(Trim(str)) > 0 Then str = Date & " " & Time & " - " & str
ReDim Data(1 To Len(str)) As Byte
For i = 1 To Len(str)
Data(i) = Asc(Mid(str, i, 1))
Next i
CharToOemBuff Data(1), Data(1), Len(str)
For i = 1 To Len(str)
Mid(str, i, 1) = Chr$(Data(i))
Next i
If UBound(arguments()) = -1 Then ' Compatibilité avec ancienne
version
str = str & vbCrLf
End If
lResult = WriteConsole(hConsole, ByVal str, Len(str), cWritten, ByVal
0&)
End If
End Function
'****
Maintenant on peut toujours écrire:
printf "Hello World"
Mais on peut aussi faire ça:
' ---------------------------------------------------
Dim i As Integer
Dim sometext As String
sometext = "WORLD"
OpenConsole
For i = 1 To 10
printf "(%c) Hello %st%dn", 64 + i, sometext, i
Sleep 10
Next i
DumpConsole "Trace.log"
CloseConsole
' ---------------------------------------------------
Qui produit:
1/04/2008 15:47:00 - (A) Hello WORLD 1
1/04/2008 15:47:00 - (B) Hello WORLD 2
1/04/2008 15:47:00 - (C) Hello WORLD 3
1/04/2008 15:47:00 - (D) Hello WORLD 4
1/04/2008 15:47:00 - (E) Hello WORLD 5
1/04/2008 15:47:00 - (F) Hello WORLD 6
1/04/2008 15:47:00 - (G) Hello WORLD 7
1/04/2008 15:47:00 - (H) Hello WORLD 8
1/04/2008 15:47:00 - (I) Hello WORLD 9
1/04/2008 15:47:00 - (J) Hello WORLD 10
A faire maintenant: compléter l'implémentation de printf
pour traiter en plus les parties optionelles avant type:
[flags][width][.precision][{suffix}]
"Jacques93" <jacques@Nospam> wrote in message
news:um2%23Gw9kIHA.1208@TK2MSFTNGP03.phx.gbl...
J'avais envisagé d'implémenter, en partie, les fonctionnalités de
formattage de la fonction printf de C, cela ne s'est pas révélé
indispensable mais le nom est resté ...
Ce n'était pas indispensable pour moi non plus, mais ça me
simplifiait la vie. Le nom m'ayant inspiré,j'ai complété ton
printf en implémentant le minimum de printf de C.
Ca reste 100% compatible avec ton printf.
' Ecriture dans la console
' ======================= > Public Function printf(ByVal str As String, ParamArray arguments() As
Variant)
Dim lResult As Long
Dim cWritten As Long
Dim Data() As Byte, i As Integer
Dim output As String
Dim state As FrmtStates
Dim prm As Long
Dim prmValue As Variant
Dim letter As String
If hConsole <> 0 Then
state = WaitRegular
For i = 1 To Len(str)
letter = Mid$(str, i, 1)
Select Case state
Case WaitRegular
If letter = "%" Then
state = WaitType
ElseIf letter = "" Then
state = WaitEscChar
Else
output = output & letter
End If
Case WaitType ' Support c, d, f, s
If letter = "c" Then
If prm <= UBound(arguments()) Then
prmValue = arguments(prm)
If (Val(prmValue) > 0) Then
output = output & Chr$(Val(prmValue) Mod 256)
Else
output = output & Left$(prmValue, 1)
End If
prm = prm + 1
End If
ElseIf letter = "d" Then
If prm <= UBound(arguments()) Then
prmValue = arguments(prm)
output = output & CLng(prmValue)
End If
prm = prm + 1
ElseIf letter = "f" Then
If prm <= UBound(arguments()) Then
prmValue = arguments(prm)
output = output & CDbl(prmValue)
End If
prm = prm + 1
ElseIf letter = "s" Then
If prm <= UBound(arguments()) Then
prmValue = arguments(prm)
output = output & CStr(prmValue)
End If
prm = prm + 1
Else
output = output & letter
End If
state = WaitRegular
Case WaitEscChar ' Support n, t and \
If letter = "n" Then
output = output & vbCrLf
ElseIf letter = "t" Then
output = output & vbTab
ElseIf letter = "" Then
output = output & ""
End If
state = WaitRegular
End Select
Next i
str = output
If Len(Trim(str)) > 0 Then str = Date & " " & Time & " - " & str
ReDim Data(1 To Len(str)) As Byte
For i = 1 To Len(str)
Data(i) = Asc(Mid(str, i, 1))
Next i
CharToOemBuff Data(1), Data(1), Len(str)
For i = 1 To Len(str)
Mid(str, i, 1) = Chr$(Data(i))
Next i
If UBound(arguments()) = -1 Then ' Compatibilité avec ancienne
version
str = str & vbCrLf
End If
lResult = WriteConsole(hConsole, ByVal str, Len(str), cWritten, ByVal
0&)
End If
End Function
'****
Maintenant on peut toujours écrire:
printf "Hello World"
Mais on peut aussi faire ça:
' ---------------------------------------------------
Dim i As Integer
Dim sometext As String
sometext = "WORLD"
OpenConsole
For i = 1 To 10
printf "(%c) Hello %st%dn", 64 + i, sometext, i
Sleep 10
Next i
DumpConsole "Trace.log"
CloseConsole
' ---------------------------------------------------
Qui produit:
1/04/2008 15:47:00 - (A) Hello WORLD 1
1/04/2008 15:47:00 - (B) Hello WORLD 2
1/04/2008 15:47:00 - (C) Hello WORLD 3
1/04/2008 15:47:00 - (D) Hello WORLD 4
1/04/2008 15:47:00 - (E) Hello WORLD 5
1/04/2008 15:47:00 - (F) Hello WORLD 6
1/04/2008 15:47:00 - (G) Hello WORLD 7
1/04/2008 15:47:00 - (H) Hello WORLD 8
1/04/2008 15:47:00 - (I) Hello WORLD 9
1/04/2008 15:47:00 - (J) Hello WORLD 10
A faire maintenant: compléter l'implémentation de printf
pour traiter en plus les parties optionelles avant type:
[flags][width][.precision][{suffix}]
"Jacques93" wrote in message
news:um2%J'avais envisagé d'implémenter, en partie, les fonctionnalités de
formattage de la fonction printf de C, cela ne s'est pas révélé
indispensable mais le nom est resté ...
Ce n'était pas indispensable pour moi non plus, mais ça me
simplifiait la vie. Le nom m'ayant inspiré,j'ai complété ton
printf en implémentant le minimum de printf de C.
Ca reste 100% compatible avec ton printf.
' Ecriture dans la console
' ======================= > Public Function printf(ByVal str As String, ParamArray arguments() As
Variant)
Dim lResult As Long
Dim cWritten As Long
Dim Data() As Byte, i As Integer
Dim output As String
Dim state As FrmtStates
Dim prm As Long
Dim prmValue As Variant
Dim letter As String
If hConsole <> 0 Then
state = WaitRegular
For i = 1 To Len(str)
letter = Mid$(str, i, 1)
Select Case state
Case WaitRegular
If letter = "%" Then
state = WaitType
ElseIf letter = "" Then
state = WaitEscChar
Else
output = output & letter
End If
Case WaitType ' Support c, d, f, s
If letter = "c" Then
If prm <= UBound(arguments()) Then
prmValue = arguments(prm)
If (Val(prmValue) > 0) Then
output = output & Chr$(Val(prmValue) Mod 256)
Else
output = output & Left$(prmValue, 1)
End If
prm = prm + 1
End If
ElseIf letter = "d" Then
If prm <= UBound(arguments()) Then
prmValue = arguments(prm)
output = output & CLng(prmValue)
End If
prm = prm + 1
ElseIf letter = "f" Then
If prm <= UBound(arguments()) Then
prmValue = arguments(prm)
output = output & CDbl(prmValue)
End If
prm = prm + 1
ElseIf letter = "s" Then
If prm <= UBound(arguments()) Then
prmValue = arguments(prm)
output = output & CStr(prmValue)
End If
prm = prm + 1
Else
output = output & letter
End If
state = WaitRegular
Case WaitEscChar ' Support n, t and
If letter = "n" Then
output = output & vbCrLf
ElseIf letter = "t" Then
output = output & vbTab
ElseIf letter = "" Then
output = output & ""
End If
state = WaitRegular
End Select
Next i
str = output
If Len(Trim(str)) > 0 Then str = Date & " " & Time & " - " & str
ReDim Data(1 To Len(str)) As Byte
For i = 1 To Len(str)
Data(i) = Asc(Mid(str, i, 1))
Next i
CharToOemBuff Data(1), Data(1), Len(str)
For i = 1 To Len(str)
Mid(str, i, 1) = Chr$(Data(i))
Next i
If UBound(arguments()) = -1 Then ' Compatibilité avec ancienne
version
str = str & vbCrLf
End If
lResult = WriteConsole(hConsole, ByVal str, Len(str), cWritten, ByVal
0&)
End If
End Function
'****
Maintenant on peut toujours écrire:
printf "Hello World"
Mais on peut aussi faire ça:
' ---------------------------------------------------
Dim i As Integer
Dim sometext As String
sometext = "WORLD"
OpenConsole
For i = 1 To 10
printf "(%c) Hello %st%dn", 64 + i, sometext, i
Sleep 10
Next i
DumpConsole "Trace.log"
CloseConsole
' ---------------------------------------------------
Qui produit:
1/04/2008 15:47:00 - (A) Hello WORLD 1
1/04/2008 15:47:00 - (B) Hello WORLD 2
1/04/2008 15:47:00 - (C) Hello WORLD 3
1/04/2008 15:47:00 - (D) Hello WORLD 4
1/04/2008 15:47:00 - (E) Hello WORLD 5
1/04/2008 15:47:00 - (F) Hello WORLD 6
1/04/2008 15:47:00 - (G) Hello WORLD 7
1/04/2008 15:47:00 - (H) Hello WORLD 8
1/04/2008 15:47:00 - (I) Hello WORLD 9
1/04/2008 15:47:00 - (J) Hello WORLD 10
A faire maintenant: compléter l'implémentation de printf
pour traiter en plus les parties optionelles avant type:
[flags][width][.precision][{suffix}]
jean-marc a écrit :
A faire maintenant: compléter l'implémentation de printf
pour traiter en plus les parties optionelles avant type:
[flags][width][.precision][{suffix}]
Joli :-)
Pour ce qui voudrait aller plus loin (je n'ai pas le courage), un
autre exemple d'implémentation (non testé), qui semble assez complet
au niveau des options, basé sur sprintf / fprintf :
<http://www.freevbcode.com/ShowCode.asp?IDE23>
et la liste exhaustive ? (je crois que cela dépend des versions de C /
C++ ) des options à implémenter :
jean-marc a écrit :
A faire maintenant: compléter l'implémentation de printf
pour traiter en plus les parties optionelles avant type:
[flags][width][.precision][{suffix}]
Joli :-)
Pour ce qui voudrait aller plus loin (je n'ai pas le courage), un
autre exemple d'implémentation (non testé), qui semble assez complet
au niveau des options, basé sur sprintf / fprintf :
<http://www.freevbcode.com/ShowCode.asp?IDE23>
et la liste exhaustive ? (je crois que cela dépend des versions de C /
C++ ) des options à implémenter :
jean-marc a écrit :
A faire maintenant: compléter l'implémentation de printf
pour traiter en plus les parties optionelles avant type:
[flags][width][.precision][{suffix}]
Joli :-)
Pour ce qui voudrait aller plus loin (je n'ai pas le courage), un
autre exemple d'implémentation (non testé), qui semble assez complet
au niveau des options, basé sur sprintf / fprintf :
<http://www.freevbcode.com/ShowCode.asp?IDE23>
et la liste exhaustive ? (je crois que cela dépend des versions de C /
C++ ) des options à implémenter :
>Jean-marc wrote:
>Jean-marc wrote:
>Jean-marc wrote:
Pour ce qui voudrait aller plus loin (je n'ai pas le courage), un autre
Pour ce qui voudrait aller plus loin (je n'ai pas le courage), un autre
Pour ce qui voudrait aller plus loin (je n'ai pas le courage), un autre