par exemple : messagerequester() devient ==> messagereuester()
Voici les codes que j'utilise :
pour coder :
Code : Tout sélectionner
Enumeration
#fichier
EndEnumeration
NewList liste.s()
NewList liste2.s()
NewList liste3.s()
NewList liste4.s()
Dim tableau.s(254, 254) ; tableau contenant tout les caractères possibles, (sans ""), en décalant les caractère de une place à chaque ligne
Procedure.s fichier_en_texte(fichier_a_utiliser$); récupère le texte du fichier ouver
If OpenFile(#fichier, fichier_a_utiliser$)
*buffer = AllocateMemory(Lof())
ReadData(*buffer, Lof())
CloseFile(#fichier)
ProcedureReturn PeekS(*buffer); renvoi le texte si le fichier existe
Else
ProcedureReturn ""; ne renvoi rien sinon
EndIf
EndProcedure
Procedure.s coder(code$); permet de supprimer tous les caractères déja existant dans le code
If code$
longueur = Len(code$)
Repeat
vrai_code$ = vrai_code$ + Mid(code$, 1, 1); creer le nouveau mot de passe
code$ = RemoveString(code$, Right(vrai_code$, 1)); supprime les caractère déja utilisés
until code$ = ""
ProcedureReturn vrai_code$; si un code est entré, renvoi le code simplifié
Else
ProcedureReturn ""; ne renvoi rien si il n'y a pas de code
EndIf
EndProcedure
Procedure creer_la_liste(code$) ; crée une liste commencant par les lettres du code simplifié, puis qui se termine par le reste des caractères
ClearList(liste())
For place = 1 To Len(code$)
AddElement(liste()); ajoute un élément a la liste
liste() = Mid(code$, place, 1); place un caractère du code correspondant à place
Next
For caractere = 0 To 254; pour chaque caractère exepté ""
existe = #False
ForEach liste(); on regarde dans la liste
If liste() = Chr(caractere + 1); si le caractère existe déja (déja dans le code)
existe = #True
EndIf
Next
If existe = #False; si le caractère n'existe pas
AddElement(liste());on ajoute un élément
liste() = Chr(caractere + 1); qui a pour valeur caractere + 1
EndIf
Next
EndProcedure
Procedure.s code_alphabet(fichier_sous_forme_de_string$, code$); permet de crypter le fichier en utilisant la liste liste()
ClearList(liste2())
For coder = 0 To Len(fichier_sous_forme_de_string$) - 1; pour chaque caractere de fichier_sous_forme_de_string$
SelectElement(liste(), Asc(Mid(fichier_sous_forme_de_string$, coder + 1, 1)) - 1); on choisi l'élément de la liste qui corresponderait si la liste était un tableau ASCII
AddElement(liste2()); on ajoute un élément a liste2()
liste2() = liste(); l'élément correspond à l'emplacement de liste() sélectionné
Next
ForEach liste2(); pour chaque élément de liste2()
textecodefinal$ = textecodefinal$ + liste2(); on ajoute sa valeur a textecodefinal$
Next
ProcedureReturn textecodefinal$; renvoit textecodefinal$
EndProcedure
Procedure faire_le_tableau(); prépare le tableau avec tous les caractères sauf ""
For tableau_x = 0 To 254; pour chaque colone du tableau
caractere + 1 ; le premier caractère de la ligne à créer est décalé de 1
For tableau_y = 0 To 254; pour chaque ligne du tableau
If tableau_y + caractere > 255; si le numéro ASCII du caractère à inscrire est plus grand que 255
aide = tableau_y + caractere - 255; on enlève 255 pour qu'il devienn valable
Else
aide = tableau_y + caractere; sinon on marque juste le numéro
EndIf
tableau(tableau_x, tableau_y) = Chr(aide); on inscrit le caractère dans le tableau
Next
Next
EndProcedure
Procedure.s code_tableau(fichier_deja_code$, code$); on code en utilisant le tableau
ClearList(liste3())
For code = 1 To Len(code$); pour chaque caractère du code
AddElement(liste3()); on ajoute un élément à liste3()
liste3() = Mid(code$, code, 1); qui a pour valeur le caractère du code
Next
SelectElement(liste3(), 0); on remet la liste3() à 0
For x = 1 To Len(fichier_deja_code$); pour chaque caractère du fichier à coder
If ListIndex(liste3()) = - 1 ; si il n'y a plus d'élément dans la liste3()
SelectElement(liste3(), 0); on remet liste3() à 0
EndIf
NextElement(liste3());sinon on prend l'élément suivant
For z = 0 To 254; pour chaque caractère possible
If tableau(z, Asc(liste3()) - 1) = Mid(fichier_deja_code$, x, 1); si la valeur du tableau à la ligne du caractère courant du code, et à la colone z est égal au caractère du fichier
AddElement(liste4()); on ajoute un élément à liste4()
liste4() = tableau(z, 0); on applique comme valeur la valeur de la ligne 0 du tableau et de la même colonne (z)
EndIf
Next
Next
ForEach liste4(); pour chaque élément de liste4() et donc du fichier codé
resultat$ = resultat$ + liste4(); on ajoute la valeur de liste4() à resultat$
Next
ProcedureReturn resultat$; retourne le fichier codé
EndProcedure
Procedure creer_le_fichier_code(fichier_a_utiliser$, code$, adresse_du_fichier_code_a_creer$); procédure qui crée le fichier
creer_la_liste(coder(code$)); crée la liste correspondant au code entré
faire_le_tableau(); crée le tableau
code_tableau(code_alphabet(fichier_en_texte(fichier_a_utiliser$), coder(code$)), code$); code le fichier en utilisant code_alphabet() puis code en utilisant code_tableau()
CreateFile(#fichier, adresse_du_fichier_code_a_creer$); crée le fichier codé
ForEach liste4(); pour chaque élément de liste4() et donc caractère du fichier codé
WriteString(liste4()); écrit cet élément dans le fichier créé
Next
EndProcedure
fichier_cible$ = OpenFileRequester("Ouvrir le fichier a crypter", GetSpecialFolderLocation(5), "Tout type de fichier | *.*", 0)
code_a_utiliser$ = InputRequester("Code à utiliser", "Veuillez entrer le code", "")
nom_de_fichier$ = SaveFileRequester("Créer un fichier crypté", GetSpecialFolderLocation(5), "Fichier .crypt | *.crypt", 0)
If fichier_cible$ And code_a_utiliser$ And nom_de_fichier$
nom_de_fichier$ + "." + GetExtensionPart(fichier_cible$) + ".crypt"
creer_le_fichier_code(fichier_cible$, code_a_utiliser$, nom_de_fichier$)
EndIf
Code : Tout sélectionner
Enumeration
#fichier
EndEnumeration
NewList liste.s()
NewList liste2.s()
NewList liste3.s()
NewList liste4.s()
Dim tableau.s(253, 253)
Procedure.s fichier_en_texte(fichier_a_utiliser$)
If OpenFile(#fichier, fichier_a_utiliser$)
Repeat
x = Len(fichier_en_texte$)
fichier_en_texte$ = fichier_en_texte$ + ReadString()
Until Len(fichier_en_texte$) = x
CloseFile(#fichier)
ProcedureReturn fichier_en_texte$
Else
ProcedureReturn ""
EndIf
EndProcedure
Procedure.s coder(code$)
If code$
longueur = Len(code$)
For place = 1 To longueur
vrai_code$ = vrai_code$ + Mid(code$, 1, 1)
code$ = RemoveString(code$, Right(vrai_code$, 1))
Next
ProcedureReturn vrai_code$
Else
ProcedureReturn ""
EndIf
EndProcedure
Procedure creer_la_liste(code$)
ClearList(liste())
For place = 1 To Len(code$)
AddElement(liste())
liste() = Mid(code$, place, 1)
Next
For caractere = 0 To 254
existe = #False
ForEach liste()
If liste() = Chr(caractere + 1)
existe = #True
EndIf
Next
If existe = #False
AddElement(liste())
liste() = Chr(caractere + 1)
EndIf
Next
EndProcedure
Procedure.s code_alphabet(fichier_sous_forme_de_string$, code$)
ClearList(liste2())
For coder = 0 To Len(fichier_sous_forme_de_string$) - 1
ForEach liste()
If liste() = Mid(fichier_sous_forme_de_string$, coder + 1, 1)
AddElement(liste2())
liste2() = Chr(ListIndex(liste()) + 1)
EndIf
Next
Next
ForEach liste2()
textecodefinal$ = textecodefinal$ + liste2()
Next
ProcedureReturn textecodefinal$
EndProcedure
Procedure faire_le_tableau()
For tableau_x = 0 To 253
caractere + 1
For tableau_y = 0 To 253
If tableau_y + caractere > 253
aide = tableau_y + caractere - 253
Else
aide = tableau_y + caractere
EndIf
tableau(tableau_x, tableau_y) = Chr(aide)
Next
Next
EndProcedure
Procedure.s code_tableau(fichier_deja_code$, code$)
ClearList(liste3())
For code = 1 To Len(code$)
AddElement(liste3())
liste3() = Mid(code$, code, 1)
Next
SelectElement(liste3(), 0)
For x = 1 To Len(fichier_deja_code$)
If ListIndex(liste3()) = - 1
SelectElement(liste3(), 0)
EndIf
NextElement(liste3())
AddElement(liste4())
liste4() = tableau(Asc(Mid(fichier_deja_code$, x, 1)) - 1, Asc(liste3()) - 1)
Next
ForEach liste4()
resultat$ = resultat$ + liste4()
Next
ProcedureReturn resultat$
EndProcedure
Procedure.s creer_le_fichier_decode(fichier_a_utiliser$, code$, adresse_du_fichier_code_a_creer$)
creer_la_liste(coder(code$))
faire_le_tableau()
code_alphabet(code_tableau(fichier_en_texte(fichier_a_utiliser$), code$), coder(code$))
CreateFile(#fichier, adresse_du_fichier_code_a_creer$)
ForEach liste2()
WriteString(liste2())
Next
EndProcedure
fichier_cible$ = OpenFileRequester("Ouvrir le fichier a décrypter", GetSpecialFolderLocation(5), "Fichier .crypt | *.crypt", 0)
code_a_utiliser$ = InputRequester("Code à utiliser", "Veuillez entrer le code", "")
nom_de_fichier$ = SaveFileRequester("Créer un fichier décrypté", GetSpecialFolderLocation(5), "fichier|*.txt" , 0)
If fichier_cible$ And code_a_utiliser$ And nom_de_fichier$
nom_de_fichier$ + "." + GetExtensionPart(Left(fichier_cible$, Len(fichier_cible$) - 6))
creer_le_fichier_decode(fichier_cible$, code_a_utiliser$, nom_de_fichier$)
EndIf