RÉCUPÉRER UNE VALEUR NUMÉRIQUE MAXIMALE DANS UNE CHAINE DE CARACTÈRES
cs_rene38
Messages postés1858Date d'inscriptionsamedi 29 juin 2002StatutMembreDernière intervention17 octobre 2013
-
1 mars 2004 à 19:35
yiab
Messages postés27Date d'inscriptionjeudi 10 juillet 2008StatutMembreDernière intervention31 mai 2015
-
10 oct. 2008 à 22:43
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
yiab
Messages postés27Date d'inscriptionjeudi 10 juillet 2008StatutMembreDernière intervention31 mai 2015 10 oct. 2008 à 22:43
bonjour,
tout d'abord merci pour ton code qui m'a été très utile
je suis débutant en vb6, et j'essaye malgré tout de développer de quoi manipuler du Gcode
je suis donc tombé sur ton code qui fonctionne tres bien avec les entier les "Long" et les nombres a virgules
mais qui ne voulait rien savoir quand il s'agit de chiffres tels que "0,1 ou 0,xx"
donc j'ai tatonné, et j'ai fini par avoir l'idée de remplacer :
Valeur_Maxi = Cint(Recup) (ou plutôt Csng(Recup) en ce qui me concerne)
par :
Valeur_Maxi = Val(Recup)
et la ça marche nickel ! pour ceux que ça interesse
Public Function Valeur_Maxi(Chaine As String, Separateur As String) As Single
Dim Recup As String
Dim Partiel As String
' Compte le nbr de caractère
For i = 1 To Len(Chaine)
'Incrémente la variable de comparaison
Partiel = Partiel + Mid$(Chaine, i, 1)
'Si i trouve le séparateur ou arrive à la fin
If Mid$(Chaine, i, 1) Separateur Or i Len(Chaine) Then
' Si Recup < Partiel alors Recup = Partiel
If Val(Recup) < Val(Partiel) Then Recup = Partiel
Partiel = ""
End If
Next i
' Récupère la valeur maxi
Valeur_Maxi = Val(Recup)
End Function
Private Sub Command1_Click()
'le text2 renvoie la valeur recup située apres le X
Text2.Text = Valeur_Maxi(Text1.Text, "X")
'le text3 renvoie la valeur recup située apres le Z
Text3.Text = Valeur_Maxi(Text1.Text, "-")
end sub
voilà une Form, 3 textbox
vous coller ça (un bout de Gcode) dans le Text1
voilà et merci nofutur pour ton code qui m'a permis de mieux appréhender
cette chose mystérieuse qu'est le VB6
Sinsitrus
Messages postés849Date d'inscriptionsamedi 11 juin 2005StatutMembreDernière intervention21 août 2015 14 déc. 2006 à 16:58
Salut !
Je n'ai pas bien compris comment proceder... vous pouvez mieux m'expliquer svp !
cs_NoFutur
Messages postés171Date d'inscriptionmardi 17 décembre 2002StatutMembreDernière intervention 6 mai 20071 1 mars 2004 à 20:19
Eh bien si j'avais VB6 j'aurai pu utilisé cette fonction mais comme je l'ai pô j'ai du faire avec les moyens du bord lol
Mais maintenant ça y est j'ai compris à quoi y sert Split dans VB6 !
On dira que c'est le Split du VB5 pour faire original :o)
@plus ;-)
cs_rene38
Messages postés1858Date d'inscriptionsamedi 29 juin 2002StatutMembreDernière intervention17 octobre 201311 1 mars 2004 à 19:35
Ou bien en utilisant la fonction SPLIT :
Public Function Valeur_Maxi(Chaine As String, Separateur As String) As Integer
Dim tabl() As String, i As Integer
tabl = Split(Chaine, Separateur)
Valeur_Maxi = Val(tabl(0))
For i = 1 To UBound(tabl)
If Val(tabl(i)) > Valeur_Maxi Then Valeur_Maxi = Val(tabl(i))
Next i
End Function
10 oct. 2008 à 22:43
tout d'abord merci pour ton code qui m'a été très utile
je suis débutant en vb6, et j'essaye malgré tout de développer de quoi manipuler du Gcode
je suis donc tombé sur ton code qui fonctionne tres bien avec les entier les "Long" et les nombres a virgules
mais qui ne voulait rien savoir quand il s'agit de chiffres tels que "0,1 ou 0,xx"
donc j'ai tatonné, et j'ai fini par avoir l'idée de remplacer :
Valeur_Maxi = Cint(Recup) (ou plutôt Csng(Recup) en ce qui me concerne)
par :
Valeur_Maxi = Val(Recup)
et la ça marche nickel ! pour ceux que ça interesse
Public Function Valeur_Maxi(Chaine As String, Separateur As String) As Single
Dim Recup As String
Dim Partiel As String
' Compte le nbr de caractère
For i = 1 To Len(Chaine)
'Incrémente la variable de comparaison
Partiel = Partiel + Mid$(Chaine, i, 1)
'Si i trouve le séparateur ou arrive à la fin
If Mid$(Chaine, i, 1) Separateur Or i Len(Chaine) Then
' Si Recup < Partiel alors Recup = Partiel
If Val(Recup) < Val(Partiel) Then Recup = Partiel
Partiel = ""
End If
Next i
' Récupère la valeur maxi
Valeur_Maxi = Val(Recup)
End Function
Private Sub Command1_Click()
'le text2 renvoie la valeur recup située apres le X
Text2.Text = Valeur_Maxi(Text1.Text, "X")
'le text3 renvoie la valeur recup située apres le Z
Text3.Text = Valeur_Maxi(Text1.Text, "-")
end sub
voilà une Form, 3 textbox
vous coller ça (un bout de Gcode) dans le Text1
G01 Y0 Z-0.445
G01 X0.2 Z-0.383
G01 X0.4 Z-0.383
G01 X0.6 Z-0.445
G01 X0.8 Z-0.383
G01 X1 Z-0.383
G01 X1.2 Z-0.383
G01 X1.4 Z-0.32
G01 X1.6 Z-0.383
G01 X1.8 Z-0.383
G01 X2 Z-0.383
G01 X2.2 Z-0.32
G01 X2.4 Z-0.383
G01 X2.6 Z-0.32
G01 X2.8 Z-0.32
G01 X3 Z-0.445
G01 X3.2 Z-0.383
G01 X3.4 Z-0.445
G01 X3.6 Z-0.32
G01 X3.8 Z-0.383
G01 X4 Z-0.383
G01 X4.2 Z-0.32
G01 X4.4 Z-0.32
G01 X4.6 Z-0.383
G01 X4.8 Z-0.383
G01 X5 Z-0.383
G01 X5.2 Z-0.383
G01 X5.4 Z-0.383
G01 X5.6 Z-0.32
G01 X5.8 Z-0.445
G01 X6 Z-0.445
G01 X6.2 Z-0.445
G01 X6.4 Z-0.32
G01 X6.6 Z-0.32
G01 X6.8 Z-0.445
voilà et merci nofutur pour ton code qui m'a permis de mieux appréhender
cette chose mystérieuse qu'est le VB6
14 déc. 2006 à 16:58
Je n'ai pas bien compris comment proceder... vous pouvez mieux m'expliquer svp !
1 mars 2004 à 20:19
Mais maintenant ça y est j'ai compris à quoi y sert Split dans VB6 !
On dira que c'est le Split du VB5 pour faire original :o)
@plus ;-)
1 mars 2004 à 19:35
Public Function Valeur_Maxi(Chaine As String, Separateur As String) As Integer
Dim tabl() As String, i As Integer
tabl = Split(Chaine, Separateur)
Valeur_Maxi = Val(tabl(0))
For i = 1 To UBound(tabl)
If Val(tabl(i)) > Valeur_Maxi Then Valeur_Maxi = Val(tabl(i))
Next i
End Function