Problème avec mon algorithme

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Problème avec mon algorithme

Message par gansta93 »

bonjour,

Je me suis amusé à créer mon petit algorithme de cryptage, mais j'ai à chaque fois que je décrypte, le ô qui devien È et je ne comprand pas pourquoi.
Si quelqu'un pouvait m'aider svp.

Code : Tout sélectionner

Procedure.s Cripte(Texte.s)
  
  tmp$ = ""
  tmp1$ = ""
  For I = 1 To Len(Texte)
    tmp$ = Mid(Texte, I, 1)
    var = Asc(tmp$) + 22
    If var > 255
      var - 300
    EndIf
    tmp1$ = tmp1$ + Chr(var)
  Next
  ProcedureReturn tmp1$
  
EndProcedure

Procedure.s Decripte(Texte.s)
  
  For i = 1 To Len(Texte)
    tmp$ = Mid(Texte, i, 1)
    var = Asc(tmp$) + 300 - 22
    If var > 255
      var = var - 300
    EndIf
    tmp1$ = tmp1$ + Chr(var)
  Next
  ProcedureReturn tmp1$
  
EndProcedure

Texte1$ = "Lol, c'est drôle !"
c$ = cripte(Texte1$)
c1$ = Decripte(c$)
MessageRequester("Essais", Texte1$ + " donne :" + " " + c$, 0)
MessageRequester("Essais", c$ + " décrypté donne : " + c1$, 0)
End
Merci d'avance.
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

pourquoi 300 ???
fais var = var %256 :lol:
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

J'ai mis 300 pour changer... mais pk ça pause problème de mettre 300 ou 256 ? Je suis très très mauvais en mathématiques.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Code : Tout sélectionner

Procedure.s Cripte(Texte.s) 
  
  tmp$ = "" 
  tmp1$ = "" 
  For I = 1 To Len(Texte) 
    tmp$ = Mid(Texte, I, 1) 
    var = Asc(tmp$) + 22 
    If var > 255 
      var - 255
    EndIf 
    tmp1$ = tmp1$ + Chr(var) 
  Next 
  ProcedureReturn tmp1$ 
  
EndProcedure 

Procedure.s Decripte(Texte.s) 
  
  For I = 1 To Len(Texte) 
    tmp$ = Mid(Texte, I, 1)
    var = Asc(tmp$) - 22
    If var < 0
      var = var + 255
    EndIf 
    tmp1$ = tmp1$ + Chr(var) 
  Next 
  ProcedureReturn tmp1$ 
  
EndProcedure 

Texte1$ = "Lol, c'est drôle !" 
c$ = Cripte(Texte1$) 
c1$ = Decripte(c$) 
MessageRequester("Essais", Texte1$ + " donne :" + " " + c$, 0) 
MessageRequester("Essais", c$ + " décrypté donne : " + c1$, 0) 
End
tu peux pas faire un chr avec une valeur négative, il faut que ta valeur reste entre 0 et 255
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

OK merci... ça m'énerve... j'arrive pas à imaginer un algo... trop nul en maths...
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

trop nul en maths...
ben oui peut etre :D

mais y a rien de Mathématique la dedans !!
les lettres et le chiffres (graphique) d'un ordinateur sont codé de 0 a 255 !!
cela s'appelle le code ASCII !
c'est une norme , c'est tout !
donc si tu bosse avec les "chr" et "asc" etc , faut rester dans la fourchette
de 0 a 255 (je dirai meme de 32 a 126) car en dessous de 32
se sont les caractere de controls , et au dessus c'est de l'ascii etendu
dont les signes representant le code peut varier d'un ordi a l'autre

:D
Répondre