Char-->ASCII/ANSI et ASCII/ANSI-->Char [Résolu]

Nargzul 438 Messages postés vendredi 9 mai 2003Date d'inscription 26 juillet 2007 Dernière intervention - 12 oct. 2005 à 09:59 - Dernière réponse : jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention
- 13 oct. 2005 à 19:07
Bonjour



Voila, pour apprendre un peu le delphi, je me fait des petits progs.
Actuellement j'essaie de faire un truc qui crypte du texte, et pour ca
j'utilise en partie la représentation numérique d'une lettre... enfin,
bref.



Mais je n'arrive pas à trouver dans la doc comment on transforme un
caractère en ASCII ou en ANSI(si possible les deux), et comment faire
l'étape inverse, a partir du numéro ANSI d'une lettre, comment la
retransformer en string.



Merci beaucoup de votre aide!
Afficher la suite 

7 réponses

Répondre au sujet
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 12 oct. 2005 à 10:14
+3
Utile
salut ,

pour char ---> ascii utlise valeur:=ord('acractere');

pour ascii --> char utilise caractere:=chr(valeur);

bonne prog
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jlen100
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 12 oct. 2005 à 10:55
+3
Utile
pour les 128 premiers caracteres le code ASCII ey ANSI sont
identiques de meme pour les suivants avec le code ASCII
etendu ANSI
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jlen100
Nargzul 438 Messages postés vendredi 9 mai 2003Date d'inscription 26 juillet 2007 Dernière intervention - 12 oct. 2005 à 10:17
0
Utile
et pour ansi
Commenter la réponse de Nargzul
DINEJC 1 Messages postés mardi 4 janvier 2005Date d'inscription 13 octobre 2005 Dernière intervention - 13 oct. 2005 à 14:36
0
Utile
Effectivement ça fonctionne parfaitement avec ORD('A') par exemple, ça donne 65, MAIS si vous souhaitez remplacer 'A' par une variable représentant un caractère autre (A,B ,C ,D 1, 2 .......ect), et que vous mettez Valeur:='A' et ensuite ORD(Valeur), là vous n'obtenez qu'un zero!!!!
Pourquoi? je n'arrive pas à trouver une solution pour :
Obtenir le code ASCII d'un caractère qui serait variable, par exemple en tapant 'A' qui me donnerait 65 et que je transfère dans une EEPROM avec Senbyte(65)!

Je ne sais pas si je suis "clair"

Merci des réponses éventuelles.

JC DINE
Commenter la réponse de DINEJC
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 13 oct. 2005 à 17:27
0
Utile
salut,

je ne vois pas ton probleme si je fais:

procedure TForm1.Button1Click(Sender: TObject);

var valeur:char;

i:integer;

begin

valeur:='A'; i:=ord(valeur);

edit1.Text:=inttostr(i);

end;

lorsque je clique sur le bouton edit1 n'affiche bien 65.

vérifie que valeur est bien declarée en char .
Commenter la réponse de jlen100
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 13 oct. 2005 à 17:36
0
Utile
tu peux également mettre 2 edits et faire:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

edit2.Text:=inttostr(ord(key));

end;

le second edit te donnera à la volée la valeur ASCII de la touche enfoncée quand le premier a le focus
Commenter la réponse de jlen100
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 13 oct. 2005 à 19:07
0
Utile
on peux aussi utiliser un transtypage à la place de ord dans l'exemple precedent cela donne:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

edit2.Text:=inttostr(integer(key));

end;
Commenter la réponse de jlen100

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.