Convertir une serie de chiffre

Résolu
maxetime Messages postés 32 Date d'inscription jeudi 23 septembre 2004 Statut Membre Dernière intervention 20 août 2010 - 21 févr. 2006 à 02:10
maxetime Messages postés 32 Date d'inscription jeudi 23 septembre 2004 Statut Membre Dernière intervention 20 août 2010 - 23 févr. 2006 à 04:20
Bonjours a tous,

J'ai un projet personnel et j'ai besoin d'aide,
je programme en C++ mais je veux utiliser le visual de basic donc j'ai besoin des fonction en basic alors voici mon projet.
J'ai une serie de chiffre (pair) et chaque 2 chiffre equivaut a une autre valeur ( ex 22 a, 23 b, 24 = c, etc), et mon but est de me faire un petit convertisseur pour me faciliter la tache. Ce que j'essaie de faire c'est que j'ecrit am serie dans une boite de texte et je veux que chaque deux nombre soit convertis a sa valeur.

J'avais pensez avoir un code comme ceci :
lecture de la serie


diviser la longeur de la serie par 2 pour savoir le nombre de variable a creer


creer le nombre de variable requit


separation de la serie en pair de chiffre dans des variables


verification de la valeur de chaque variable et remplacement par sa nouvelle valeur


for (n=0, n!=totaldevariable, n+1)
if (valeur[n] = 22)
valeur[n] = a
else if (valeur[n] = 23)
valeur[n] = b
...
else if (valeur[n] = 48)
valeur[n] = z
else
return 1

Ensuite on ecrit les valeurs de cahcun dans une autre text box

Voila j'espere avoir de l'aide bientot et je vous remercit de m'avoir lu meme si vous ne pouvez pas me repondre.

Maxetime

7 réponses

PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
21 févr. 2006 à 03:08
salut,

je vois pas trop pourquoi tu ne te fais pas ce genre de fonction en C++

bref.... voici une manière qui me semble convenir






Option Explicit

'

Private Sub Form_Load()

Const MA_CHAINE_CODEE As String = "23363531364239"

MsgBox Decode(MA_CHAINE_CODEE)

Unload Me

End Sub

'

Private Function Decode(sChaine As String) As String

Decode = ""



' verif paires et non-vide

If ( Len (sChaine) Mod 2 1) Or (<gras>Len(sChaine)</gras> 0) Then Exit Function



' boucle

Dim i As Long

For i = 1 To Len (sChaine) - 1 Step 2

Decode = Decode & Chr(75 + Val(Mid$(sChaine, i, 2)))

Next i

End Function




<small> Coloration
syntaxique automatique [AFCK]</small>



++ ;)

PCPT [AFCK]
3
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
21 févr. 2006 à 11:49
Bonjour,

apparemment le codage a changé:
codes (25 à 34) -->
Chiffres "0" à "9" (48 à 57)
codes (74 à 99)
--> Lettres "a" à "z" (97 à 122)


code 22 représentant "a" soit 97 - 22 --> 75

transformé en:

code 74 représentant "a" soit 97 - 74 --> 23

et apparition des chiffres:

code 25 reprédentant "0" soit 48 - 25 --> 23



ouf, le codage des chiffres ne changent rien à l'affaire,

il suffit de changer le nombre magique 75 par 23

Decode = Decode & Chr(23 + Val(Mid$(sChaine, i, 2)))



sinon, il faut utiliser une table de correspondance,

voir réponse de jpleroisse


Daniel
3
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
21 févr. 2006 à 02:59
Bonjour,









Private Sub Command1_Click()

Dim i As Integer

Dim s As String



Text1.Text = "2223242547"

Text2.Text = ""



s = Text1.Text

For i = 1 To Len(s) Step 2

Text2.Text = Text2.Text & Chr$(Val(Mid$(s, i, 2)) + 75)

Next



End Sub


Daniel
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
21 févr. 2006 à 03:09
woups Daniel, désolé
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maxetime Messages postés 32 Date d'inscription jeudi 23 septembre 2004 Statut Membre Dernière intervention 20 août 2010
21 févr. 2006 à 05:22
Salut,

Premierement merci tout semble fonctionner, mais j'aimerais savoir comment faire pour que la serie de chiffre soit celle que j'inscrit dans une boite de texte. Et que les valeurs soient :25 0, 26 1, 27 = 2, 28 = 3, 29 = 4, 30 = 5, 31 = 6, 32 = 7, 33 = 8, 34 = 9


74 a, 75 b, 76 = c, 77 = d, 78 = e, 79 = f, 80 = g, 81 = h, 82 = i, 83 = j, 84 = k85 l, 86 m, 87 = n, 88 = o, 89 = p, 90 = q, 91 = r, 92 = s, 93 = t, 94 = u, 95 = v96 w, 97 x, 98 = y, 99 = z

Je ne veux pas trop etre demandant et si c'est le cas expliquer moi seulement comment je pourrait le faire.

Merci d'avance,

Maxetime
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
21 févr. 2006 à 11:42
Bonjour,

Essaye ceci !



Private Sub Command1_Click()

Dim Num, Num1, i, j

For i = 0 To 9

Num = Array("25", "26", "27", "28", "29", "30", "31", "32", "33", "34")

Num1 = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")

If Text1.Text = Num(i) Then

Text2.Text = Num1(i)

'Text1.Text = Num1(i) 'remplace dans text1, la valeur de 25 par 0 etc..

End If

Next i

End Sub



jpleroisse



Si une réponse vous convient, cliquez Réponse Acceptée.
0
maxetime Messages postés 32 Date d'inscription jeudi 23 septembre 2004 Statut Membre Dernière intervention 20 août 2010
23 févr. 2006 à 04:20
Merci beaucoup a tous,

J'ai reussi et sa marche super bien,

J'ai apporter quelque modification mais vos code mon beaucoup aider, alors je vous ecrit mon code pour laisser profiter tout le monde.


<HR>
Option Explicit
'
Private Sub Convertir_Click()
Text2.Text = Decode(Text1.Text)
End Sub


'
Private Function Decode(sChaine As String) As String
Decode = ""


' verif paires et non-vide If (Len(sChaine) Mod 2 1) Or (Len(sChaine) 0) Then Exit Function


' boucle
Dim i As Long
For i = 1 To Len(sChaine) - 1 Step 2
Decode = Decode & Chr(23 + Val(Mid$(sChaine, i, 2)))
Next i
End Function


Private Sub Text1_Change()


End Sub


Private Sub Text2_Change()


End Sub

<HR>


Merci encore énormément,

Maxetime
0
Rejoignez-nous