Page 1 sur 2
[Resolu] Gestion des DIM et décalage
Publié : jeu. 01/sept./2011 14:10
par Ar-S
Yo,
j'essaye de comprendre comment remplacer facilement la position des contenu d'un tableau, en l’occurrence, l’alphabet afin de pouvoir créer un petit code de cryptage simple. je suis certains qu'il y a une méthode simple pour cela mais je m'emmêle les pinceaux.
Voilà ce que je souhaite faire.
Par rapport à un date : exemple : jour : 24 ou Mois : 9
Code : Tout sélectionner
Jour = 24
Mois = 9
Dim Alphabet.l(26)
Alphabet(0) = "a"
Alphabet(1) = "b"
Alphabet(2) = "c"
Alphabet(3) = "d"
Alphabet(4) = "e"
Alphabet(5) = "f"
Alphabet(6) = "g"
Alphabet(7) = "h"
Alphabet(8) = "i"
Alphabet(9) = "j"
Alphabet(10) = "k"
Alphabet(11) = "l"
Alphabet(12) = "m"
Alphabet(13) = "n"
Alphabet(14) = "o"
Alphabet(15) = "p"
Alphabet(16) = "q"
Alphabet(17) = "r"
Alphabet(18) = "s"
Alphabet(19) = "t"
Alphabet(20) = "u"
Alphabet(21) = "v"
Alphabet(22) = "w"
Alphabet(23) = "x"
Alphabet(24) = "y"
Alphabet(25) = "z"
Je ne sais pas comment m'y prendre pour swapper les éléments simplement.
Exemple : Si on utilise le mois pour le décalage :
Mois = 24
Dans l'alphabet, la 24eme lettre est : '
x'
Donc je souhaite que mon décalage soit :
x = 1 ,
y = 2 ,
z = 3 ,
a = 4 ,
b = 5 etc...
Re: Gestion des DIM et décalage
Publié : jeu. 01/sept./2011 14:12
par flaith
Cryptage de César ?
Re: Gestion des DIM et décalage
Publié : jeu. 01/sept./2011 14:18
par Ar-S
Oui à la base, même si au final il sera différent. La c'est le plus simple pour arriver à comprendre comment déplacer automatiquement les éléments du tableau par rapport aux mois ou au jour
--- EDIT ---
Je suis passé par les valeur ASCII pour chopper l'alphabet, me reste à les utiliser pour la substitution, ça devrait être plus facile..
Code : Tout sélectionner
Dim Alphabet.s(25)
i = 0
For k = 97 To 122
Alphabet(i) = Chr(k)
i+1
Next
Jour = 24
Mois = 9
For i = 0 To 25
Debug Alphabet(i)
Next
Re: Gestion des DIM et décalage
Publié : jeu. 01/sept./2011 15:06
par flaith
..
Re: Gestion des DIM et décalage
Publié : jeu. 01/sept./2011 15:13
par case
je ne sais pas si j'ai bien compris mais peut être une idée
Code : Tout sélectionner
Global *ascii=AllocateMemory(255)
Procedure decal(decalage)
decalage+1
For a=0 To 255
PokeB(*ascii+a,(255+(a+decalage)) % 256)
Next
EndProcedure
;
;
;
decal (-100)
For a= 0 To 255
Debug PeekB(*ascii+a) &$ff
Next
Debug "-----------------"
decal (4)
For a= 0 To 255
Debug PeekB(*ascii+a) &$ff
Next
decal (0)
Debug "-----------------"
For a= 0 To 255
Debug PeekB(*ascii+a) &$ff
Next
Re: Gestion des DIM et décalage
Publié : jeu. 01/sept./2011 15:25
par case
une autre version limitée a l'alphabet
Code : Tout sélectionner
Global *table=AllocateMemory(52)
Global *result=*table+26
For a=0 To 25 ; remplissage valeurs par defaut
PokeB(*table+a,97+a)
PokeB(*result+a,97+a)
Next
;
Procedure decal(decalage)
decalage+1
For a=0 To 25
PokeB(*result+a,PeekB(*table+((25+(a+decalage)) % 26)))
Next
EndProcedure
; application du decalage
decal(-1)
; decal 1 : a=b
; decal -1 : a=z
;affiche le resultat
For a=0 To 25
Debug Chr(PeekB(*result+a)& $ff)
Next
;
;
;
Re: Gestion des DIM et décalage
Publié : jeu. 01/sept./2011 16:02
par Ar-S
Case, c'est exactement ça (j'ai testé le second code uniquement), par contre, peux-tu expliquer le
& $FF de
Re: Gestion des DIM et décalage
Publié : jeu. 01/sept./2011 16:09
par case
si tu n'utilise qu'une valeur de 0 a 25 tu peux le virer c'etait pour le premier code sur l'ensemble du code ascii car 255 avec un peekb() retourne -127
le & $ff transforme en word et ne renvoi que la partie byte donc non signé de 0 a 255...
Re: Gestion des DIM et décalage
Publié : jeu. 01/sept./2011 16:47
par Ar-S
Merci

J'ai viré le
decalage+1 car je souhaitais (voir 1er post) que par exemple
Mois = 24
Je prends la 24eme lettre donc X
et cette lettre prend la valeur 1 (et pas 0)
Je n'utilise pas le décalage par "soustraction" pour mon p'tit projet.
Voilou.
Re: Gestion des DIM et décalage
Publié : jeu. 01/sept./2011 17:14
par case
tu fais comme tu veux c'est pour ton projet
n'oublie pas cependant que l'emplacement mémoire commence a zéro et pas a 1
mois =24
'x' est la première lettre, mais en mémoire elle est a offset +0
PeekB(*result+0)
Re: Gestion des DIM et décalage
Publié : jeu. 01/sept./2011 17:26
par Fred
Utilise PeekA() t'auras
pas à faire le &$FF

Re: Gestion des DIM et décalage
Publié : jeu. 01/sept./2011 17:54
par Ar-S
Fred a écrit :Utilise PeekA() t'auras à faire le &$FF
Tu veux dire "t'auras pas ?"
Re: Gestion des DIM et décalage
Publié : ven. 02/sept./2011 7:48
par case
oui je pense que c'est ce qu'a voulu dire fred

je devrais relire la doc moi ^^
Re: Gestion des DIM et décalage
Publié : ven. 02/sept./2011 10:43
par Ar-S
Je marque résolu, je vais tenter de gérer le swap d’éléments d'une phrase codée avec tout ça.
Merci
Re: [Resolu] Gestion des DIM et décalage
Publié : ven. 02/sept./2011 12:14
par Backup
................