Convertir une serie de chiffre

Résolu
Signaler
Messages postés
32
Date d'inscription
jeudi 23 septembre 2004
Statut
Membre
Dernière intervention
20 août 2010
-
Messages postés
32
Date d'inscription
jeudi 23 septembre 2004
Statut
Membre
Dernière intervention
20 août 2010
-
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

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
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
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
woups Daniel, désolé
Messages postés
32
Date d'inscription
jeudi 23 septembre 2004
Statut
Membre
Dernière intervention
20 août 2010

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
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
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.
Messages postés
32
Date d'inscription
jeudi 23 septembre 2004
Statut
Membre
Dernière intervention
20 août 2010

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