Il arrive que, pour une raison ou pour
une autre, on désire éviter que les utilisateurs puissent
lire le contenu d'un fichier texte utilisé par un programme
que l'on a créé. Il faut alors en coder le contenu. Cette
fiche vous donnera un exemple de codage possible. Vous pourrez
par la suite facilement inventer le vôtre: la limite sera
votre imagination.
- Créez un nouveau projet que vous nommez Ex_22xx.vbp.
Nommez la feuille (NAME) F_encodage et inscrivez Module d'encodage et de décodage
comme texte pour la propriété CAPTION.
- Ajoutez ensuite trois zones de texte comme dans le
modèle plus bas dans cette page. Nommez-les ZT_Texte,
ZT_Code et ZT_Decode. La propriété TEXT
de chacune est vide. Les autres caractéristiques sont
laissées à votre bon goût.
- Ajoutez deux boutons ayant pour nom (NAME)
BO_Code et BO_Decode. Le texte de la propriété CAPTION
du premier est CODER et celui du second, DÉCODER.
Choisissez vous-même les autres caractéristiques. Voici
un exemple de ce que vous devriez obtenir.

- Vous allez poursuivre en ajoutant le script
qui permettra de coder le texte entré dans la zone
ZT_Texte.
Le principe est le suivant: à l'aide des outils de
traitement de chaîne de texte, on vérifie la position
d'une lettre dans la chaîne à coder. Si celle-ci est paire,
on remplace la lettre par le caractère se trouvant à
deux positions avant dans dans le code ASCII. Par contre,
si la position est impaire, on la remplace par le
caractère se trouvant à trois positions plus loin.
Exemple:
- La lettre est le c et sa position dans la chaîne est
paire, elle est remplacée par le a.
- La lettre est le c et sa position est impaire, elle
est remplacée par le f.
- Voici le code à ajouter.
Private Sub BO_Code_Click()
Dim V_code As String 'Initialisation
des variables
Dim V_caract As String
Dim V_caract1 As Integer
Dim V_v As Integer
Dim V_w As Integer
'Placer le contenu
de la zone de texte ZT_Texte dans la variable V_Code
V_code = ZT_Texte
For V_v = 1 To Len(V_code)
'Boucle de la longueur de la chaîne V_Code
V_caract = Mid(V_code, V_v, 1)
'Sélection d'un caractère de la
chaîne
If V_caract <> " " Then
'Si le caractère n'est pas un
espace
V_w = V_v Mod 2
'Divise la position par 2 et
trouve le reste
If V_w = 0 Then
'S'il n'y a pas de reste
(position paire)...
V_caract1 = Asc(V_caract) - 2 'attribution
de la valeur ASCII - 2
Else
' sinon (position impaire) ...
V_caract1 = Asc(V_caract) + 3 'attribution
de la valeur ASCII + 3
End If
V_caract = Chr(V_caract1)
'Reconversion en caractère du
code ASCII
Else
'Si le caractère est un espace
V_w = V_v Mod 2
'Divise la position par 2 et
trouve le reste
If V_w = 0 Then
'S'il n'y a pas de reste
(position paire)...
V_caract = Chr(95) 'Remplacement
par _
Else
' sinon (position impaire) ...
V_caract = Chr(61) 'Remplacement
par =
End If
End If
Mid(V_code, V_v, 1) = V_caract
'Réintroduction du code dans la
chaîne
Next V_v
ZT_Code.Text = V_code
'Insertion du texte codé dans la zone de texte ZT_Code
End Sub
- Enregistrez votre programme et
testez-le en écrivant quelques mots dans la première
zone de texte et en cliquant sur le bouton CODER. Vous
obtenez une version codée de votre texte, illisible par
qui que ce soit.
- Le bouton VO_Décode contient un
script qui est le contraire du précédent. Le voici.
Private Sub BO_Décode_Click()
Dim V_NonCode As String 'Initialisation
des variables
Dim V_caract As String
Dim V_caract1 As Integer
Dim V_v As Integer
Dim V_w As Integer
V_NonCode = ZT_Code.Text 'Initialisation
de V_NonCode
For V_v = 1 To Len(V_NonCode)
V_caract = Mid(V_NonCode, V_v, 1)
If V_caract <> "=" And V_caract <> "_" Then
V_w = V_v Mod 2
If V_w = 0 Then
V_caract1 = Asc(V_caract) + 2
Else
V_caract1 = Asc(V_caract) - 3
End If
V_caract = Chr(V_caract1)
Else
V_caract = Chr(32)
End If
Mid(V_NonCode, V_v, 1) = V_caract
Next V_v
ZT_Decode.Text = V_NonCode
End Sub
- Enregistrez à nouveau votre
programme et testez-le en écrivant un court texte dans la
zone ZT_texte. Cliquez ensuite sur le bouton CODER,
puis sur le bouton DÉCODER. La zone ZT_Decode
devrait contenir le même texte que la première. Seul le
texte de celle du centre diffère. Comme de raison,
il faudrait ajouter des fonctions de lecture et
d'enregistrement de fichier pour que ce programme
devienne vraiment utile.
Application:
- Créez un nouveau code de
votre cru pour remplacer celui donné dans l'exercice
précédent (par exemple inverser les lettres, les mêler,
etc.). Enregistrez le résultat sous le nom Ex_22bxx.vbp.
|