Convertion String-ASCII

MaxSoldier Messages postés 289 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 28 février 2009 - 19 juil. 2005 à 00:52
Troborg Messages postés 65 Date d'inscription samedi 24 avril 2004 Statut Membre Dernière intervention 1 août 2005 - 19 juil. 2005 à 13:24
Bonsoir, je n'arrive pas ( malgrès de nombreux exemples trouvés sur le
net ) à comprendre comment convertir un cactère en valeur ASCII...



Comment faire ( Avec des explication svp, j'ai commencé le C# hier .. :p ) svp ?

-=Ar$£nik=-

5 réponses

Troborg Messages postés 65 Date d'inscription samedi 24 avril 2004 Statut Membre Dernière intervention 1 août 2005 6
19 juil. 2005 à 01:59
La valeur ascii d'un caractère est la valeur de l'octet représentant le caractère...

Bref, si tu castes un caractère en int... tu obtiens la valeur ascii !!



Par exemple, si tu as une variable "char toto;", pour obtenir la valeur ascii du caractère qu'elle contient, il te suffit de faire :

"(int) toto" (ou "toto as int")
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
19 juil. 2005 à 03:09
Salut, sois plus précis, que veux tu faire, lire dans un fichier, envoyer des bytes de données ? le jeu de code ASCII ne contient que 127 caractères et l'unicode peut contenir toutes les langues du monde, tu ne peux pas convertir l'unicode en ASCII sans subir de perte ! les accents francais par exemple ne sont pas disponible en ASCII et bien que l'ASCII soit un sous enssemble de l'unicode je ne pense pas que caster un caractère unicode en int soit une bonne solution, même si on retrouve les même valeurs que la table ASCII et que ca semble fonctionner, je pense qu'au niveau binaire ca ne marche pas comme ca, ( mais je ne suis pas un spécialiste ). Le mieux c'est d'utiliser la classe ASCIIEncoding.

ASCIIEncoding encode = new ASCIIEncoding( );

// Pour récuperer un tableau de bytes.
byte[ ] ascii = encode.GetBytes( str );

// Pour transforme le tableau en chaine.
return encode.GetString( ascii );
0
Troborg Messages postés 65 Date d'inscription samedi 24 avril 2004 Statut Membre Dernière intervention 1 août 2005 6
19 juil. 2005 à 10:20
En fait globallement dans tous les encodages de caractères, les
caractères de bases compris entre 0 et 127 sont les mêmes et
correspondent aux caractères ASCII...

(par contre suivant l'encodage, la représentation physique d'un
caractère peut se faire sur plusieurs octets, mais cela ne se voit pas
quand on fait un cast).



Du coup si on veut les codes ascii d'un caractère, le cast fonctionne
tout le temps (et on peut vérifier que le résultat est bien un
caractère ascii en vérifiant qu'il est compris entre 0 et 127).



Voila.. C'était pour défendre un peu ma proposition... lol...



Bon, maintenant faut que je sois honnète : pour traiter un caractère,
la solution que j'ai donné peut passer... Mais clairement utiliser des
classes du style "ASCIIEncoding" est plus rigoureux et plus propre dès
qu'on veut gérer des chaines de caractères ou divers encodages !
0
MaxSoldier Messages postés 289 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 28 février 2009 2
19 juil. 2005 à 13:15
EUh en fait, je voulais seulement la valeur ASCII d'un caractère américain, soit l'équivalent de ASC() en VB...

Je travail sous SharpDevelop et cette methode :

"(int) toto" (ou "toto as int")

ne fonctionne pas...

-=Ar$£nik=-
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Troborg Messages postés 65 Date d'inscription samedi 24 avril 2004 Statut Membre Dernière intervention 1 août 2005 6
19 juil. 2005 à 13:24
Euh.. Tu as un message d'erreur ?

Normalement un bête cast doit passer..

Enfin sinon le mieux est sans doute que tu te diriges vers la solution proposée par Lutinore..
0
Rejoignez-nous