Utiliser le code ascii en delphi [Résolu]

Signaler
Messages postés
24
Date d'inscription
mercredi 29 octobre 2008
Statut
Membre
Dernière intervention
13 juillet 2011
-
Messages postés
24
Date d'inscription
mercredi 29 octobre 2008
Statut
Membre
Dernière intervention
13 juillet 2011
-
Salut à toutes et à tous,
j'ai un problème et je souhaite que vous pouvez m'aider
comment utiliser le tableau du code ascii en Delphi pour chiffrer un message


C’est-à-dire tapez un texte dans un composant Memo et afficher le texte chiffré utilisant le code Ascii dans un autre Memo,


Merci d’avance.   

10 réponses

Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
9
Petit coucou rapide le temps de répondre à ce message.

ord(char) te donne le code ascii de ce caractère (exemple : ord('A') donne 65, et ord('a') te donnera 97 ...).
Voici un site avec un tableau ascii (oui les anglais partagent le même alphabet que nous :p ), je m'en sers souvent : www.asciitable.com

Voilà, le reste devrait vite se faire ... une petite boucle sur chaque caractère du mémo ...

Allez tiens :

procedure AsciiProcess(Input, Output: TStrings);
Var
I: Integer;
begin
Output.Clear;
for I := 0 to Length(Input.Text) do
Output.Text := Output.Text + IntToStr(ord(Input.Text[I]));
end;

Voilà ... en prime il te chiffrera avec un 0 devant ...
Je te laisse voir pour le déchiffrage.

Pour appeller : AsciiProcess(MonMemo1.Lines, MonMemo2.Lines);

Et voilà !!

Cordialement, Bacterius !
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
bonsoir,

tu as testé ?
ça plante sur :
IntToStr(ord(Input.Text[I]))

cantador
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
9
Oui j'ai testé et ça n'a pas planté ... en revanche ça a mis un 0 devant chaque code ascii ...
Mais je pense que c'est dû à la tentative d'accès à une variable objet ... il faudrait passer Input et Output en variable abstraite ... :

procedure AsciiProcess(Input, Output: TStrings);
Var
I: Integer;
InEx, OutEx: TStringList;
begin
InEx := TStringList.Create;
OutEx := TStringList.Create;
InEx.Text := Input.Text;
for I := 0 to Length(InEx.Text) do
OutEx.Text := OutEx.Text + IntToStr(ord(InEx.Text[I]));
Output.Text := OutEx.Text;
OutEx.Free;
InEx.Free;
end;

(Mais j'ai pas testé celle-là)

Cordialement, Bacterius !
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
9
En fait non ... élément 0 inaccessible ...
Donc :

procedure AsciiProcess(Input, Output: TStrings);
Var
I: Integer;
begin
Output.Clear;
for I := 1 to Length(Input.Text) do
Output.Text := Output.Text + IntToStr(ord(Input.Text[I]));
end;

Voilà ! (petite erreur d'inattention ^^)

Cordialement, Bacterius !
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
ça marche ! incroyable !

cantador
Messages postés
24
Date d'inscription
mercredi 29 octobre 2008
Statut
Membre
Dernière intervention
13 juillet 2011

Merci de me répondre mais peut être que j'ai pas précisé mon question, je veut utilisé le code Ascii pour trouver le message en binaire
donc comment aller du code Ascii au binaire
Merci encore une deuxième fois Bacterius et cantador
Messages postés
24
Date d'inscription
mercredi 29 octobre 2008
Statut
Membre
Dernière intervention
13 juillet 2011

Bonjour
Merci Bacterius, c'est vraiment la bonne réponce, Merci de m'aider 
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
si c'est pour faire un cryptage...
la protection n'est pas du tout efficace..

cantador
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
9
C'est sûr ... ^^ Il faudrait endurcir le cryptage !

Cordialement, Bacterius !
Messages postés
24
Date d'inscription
mercredi 29 octobre 2008
Statut
Membre
Dernière intervention
13 juillet 2011

je sais, mais c'est une partie seulement non pas le cryptosystème lui même