CODAGE ET DÉCODAGE DE NOMBRE OU DE CHIFFRE

Signaler
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Messages postés
11
Date d'inscription
jeudi 20 octobre 2005
Statut
Membre
Dernière intervention
7 juillet 2009
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52066-codage-et-decodage-de-nombre-ou-de-chiffre

Messages postés
11
Date d'inscription
jeudi 20 octobre 2005
Statut
Membre
Dernière intervention
7 juillet 2009

Le problème vient du fait que la variable X soit de type long donc il ne peut pas contenir 002 par exemple.
Messages postés
11
Date d'inscription
jeudi 20 octobre 2005
Statut
Membre
Dernière intervention
7 juillet 2009

Pas mal ! mais avec "10001" il retourne 101 lors du décryptage.
Messages postés
24
Date d'inscription
samedi 10 janvier 2009
Statut
Membre
Dernière intervention
7 juin 2014

Oué c'est pas mal du tout, j'y jéteré un oeil, mais là j'ai d'autre truc à faire ...
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
Sans trop chercher à comprendre le code, après nettoyage, j'obtiens :

Option Explicit

Private Const CLE As String = "aqwzsxedcrfvtgbyhnujikolpm&é'(-è_çà)=^$ù*,;:!~#{[|`\^@]}€AQWZSXEDCRFVTGBYHNUJ'IK.OL/PM§%µš£°+"

Private Sub Command1_Click()
Dim i As Long
Dim x As Long
Dim sChar As String
Dim LongueurCle As Long
Dim Resultat As String
LongueurCle = Len(CLE)
For i = 1 To Len(Text1.Text)
sChar = Mid$(Text1.Text, i, 1)

If sChar = "," Then
Resultat = Resultat & Mid$(CLE, x + 1, 1) & "²"
ElseIf sChar = " " Then
Resultat = Resultat & Mid$(CLE, x + 1, 1) & " "
End If

If Val(Str$(x) & Val(sChar)) >= LongueurCle Then
Resultat = Resultat & Mid$(CLE, x + 1, 1)
x = Val(sChar)
Else
x = Val(Str$(x) & Val(sChar))
End If
Next
Resultat = Resultat & Mid$(CLE, x + 1, 1)
Text2.Text = Resultat
End Sub

Private Sub Command2_Click()
Dim i As Long
Dim x As Long
Dim sChar As String
Dim Resultat As String
For i = 1 To Len(Text2.Text)
sChar = Mid$(Text2.Text, i, 1)
If sChar = "²" Then
Resultat = Resultat & ","
ElseIf sChar = " " Then
Resultat = Resultat & " "
Else
For x = 1 To Len(CLE)
If Mid$(CLE, x, 1) = sChar Then
Resultat = Resultat & (x - 1)
Exit For
End If
Next
End If
Next
Text3.Text = Resultat
End Sub
Afficher les 6 commentaires