C# - Caractères spéciaux. System.Text

C# - Caractères spéciaux. System.Text - C#/.NET managed - Programmation

Marsh Posté le 07-05-2004 à 09:56:17    

Bonjour,
 
je cherche a mettre des caractères speciaux genre <cr> dans un string ou StringBuilder peu importe. Je dois donc utiliser des ASCIIEncoder et decoder.
 
le probleme et que ca encode pour par exemple <cr> le caractère < pui c pui r pui >. au lieu davoir un octet, je me retrouve avec 4...
 
Une idée ? merci


Message édité par meumeul le 07-05-2004 à 10:49:34
Reply

Marsh Posté le 07-05-2004 à 09:56:17   

Reply

Marsh Posté le 07-05-2004 à 12:54:12    

\r \n \t \tamere ?

Reply

Marsh Posté le 07-05-2004 à 13:57:44    

lol non. jai un string qui contient <cr> et je veut fabriquer un char avec ca
 
edit: en clair je veux un char de code ascii <cr>  :D


Message édité par meumeul le 07-05-2004 à 13:58:43
Reply

Marsh Posté le 07-05-2004 à 14:05:17    

'\r'

Reply

Marsh Posté le 07-05-2004 à 14:44:45    

mouais. d´accord. alors fo que je cherche la liste de tous les \tameremachinchose...

Reply

Marsh Posté le 07-05-2004 à 14:44:53    

merci

Reply

Marsh Posté le 11-05-2004 à 09:31:45    

Bon je vais essayer détre plus clair parce que la je trouve toujours pas.
ce aue je veux c passer des trois etats:
 
par exemple pour un symbole vertical tab
jai dans un string : <VT>
et je veux a partir de ca avoir dan un char: \0x0B
ou pkoi pas dans un int: 11
 
Merci !  :bounce:

Reply

Marsh Posté le 11-05-2004 à 10:16:21    

tu te le code...

Reply

Marsh Posté le 11-05-2004 à 11:12:54    

HelloWorld a écrit :

tu te le code...


 
oui c ce que je fais...
Je me suis fait un fichier avec pour chaque ligne
un char ascii sous la forme VT ou CR ... dans l´ordre.
Pi je lis ce foutu fichier, et en fonction du numéro de la ligne ou je trouve le caractère que je cherche(apres comparaison de mon string "<VT>" avec la ligne lue par exemple ), je fais un cast du genre
 

Code :
  1. char toto = (char) numeroLigne;


 
et apres ca je peux faire ce que je veux.
Mais je trouve ca vrément crade.
Doit bien y avoir une classe secrète ou il ya une représentation sous forme <CR> ou CR. Menfin ca marche koi... mais ca me plait pas  :sweat:  
 

Reply

Marsh Posté le 11-05-2004 à 12:19:15    

\v :o

Reply

Marsh Posté le 11-05-2004 à 12:19:15   

Reply

Marsh Posté le 11-05-2004 à 12:43:23    


 
ouais mais \v c pareil...
ca donne un truc du genre

Code :
  1. monString="<VT>";
  2. if (monString.equals(...
  3. ....


 
avec pleins de test qui ne servent a rien Donc ca va pas du tout


Message édité par meumeul le 11-05-2004 à 12:44:52
Reply

Marsh Posté le 11-05-2004 à 12:45:11    

mais cai quoi ton problème à la fin ?

Reply

Marsh Posté le 12-05-2004 à 08:11:08    

Taz a écrit :

mais cai quoi ton problème à la fin ?


 
lol
 
Mon problème ct:
 
Jai un string qui contient par exemple "<cr>" ou alors "<VT>", ect...
Et je veux construire le bon char a partir de ce string
 
genre

Code :
  1. char toto = (char) getAsciiFromFormeLouche("<cr>" );


 
et la dans toto il ya le char numero 13.
 
En bref, passer des 4 octets a 1 seul, de la représentation a la valeur réelle.
 
Je sais pas si je suis encore clair... :)

Reply

Marsh Posté le 12-05-2004 à 11:41:15    

Code :
  1. static char getAsciiFromFormeLouche( string S )
  2. {
  3.     switch ( S )
  4.     {
  5.     case "<cr>" : return '\x0013';
  6.     case "<vt>" : return '\x000B';
  7.     ...
  8.     }
  9. }

Reply

Marsh Posté le 12-05-2004 à 11:41:59    

Citation :

En bref, passer des 4 octets a 1 seul,


Au passage, char c'est des char UNICODE, et ils font 2 octets.

Reply

Marsh Posté le 12-05-2004 à 13:10:43    

HelloWorld a écrit :

Citation :

En bref, passer des 4 octets a 1 seul,


Au passage, char c'est des char UNICODE, et ils font 2 octets.


 
oups, completement vrai, pardon.
ton switch est une bonne idée, j´y plus ou moins pensé.
Ce aue jai fait, c du readline dans un fichier texte ou ya les 29 premier symboles "pas affichable" de la table ascii et je cast le numéro de la ligne en char et ca passe tout seul
 
Merci pout votre aide a tous les deux.

Reply

Marsh Posté le 12-05-2004 à 13:59:30    

"<cr>"
 
 
mais c'est quoi ces conneries, je capte rien, pourquoi t'écris pas '\r' et on en parle plus bordel :o

Reply

Marsh Posté le 12-05-2004 à 14:21:56    

Citation :

jai un string qui contient <cr> et je veut fabriquer un char avec ca


Taz veut savoir pkoi tu as une string qui contient "<cr>" et pkoi tu peux pas avoir "\r" directement dedans.

Reply

Marsh Posté le 12-05-2004 à 14:28:47    

parce que sinon, c'est remplacement à coup de regex, mais dans tous les cas, la chaine de départ est inutilement et mal formatée

Reply

Marsh Posté le 12-05-2004 à 16:28:21    

Taz a écrit :

parce que sinon, c'est remplacement à coup de regex, mais dans tous les cas, la chaine de départ est inutilement et mal formatée


 
Bon alors je vais raconter my life...
 
Je dois echanger des focuments HL7 (texte pur) (des fichiers médicaux) avec un protocole de merde apellés MLLP. tout ca dans un paquet TCP et on envoit.
 
Le principe de ce putain de protocole  :pt1cable: :
 

Code :
  1. This version MLLP of the LLP differs significantly from other LLPs in that it has only a single byte to signal the start of a message and two bytes to signal the end of a message.  There is no other lower level header or trailer information.  There are no other characters added to the HL7 message.


 
donc je dois mettre un bybyte au debut et deux a la fin.
le truc c que dans le soft on doit pour choisir les chars de début. mais c chars (de 0 a 31 dans la table ascii) nónt pour la qusi totalité pas de représentation graphique.
 
donc jutilise la notation <..> dans un combobox par exemple. le gugus choisi, moi je recupere lindex du combobox et je le transforme en char. je le met en entete de mon message et c parti. pareil pour les deux byte de fin de message.
 
et pou remplir le combo box, au load de la forme, je li dans un fichier texte les 31 <..> Voila.
 
Sauf que je trouve ca tres tres crade. et je cherhais une fonction qui existe deja qui passe de <CR> a 13 par exemple.
 
Mais aperrement ca existe pas donc voila.  
 
Ai je été plus clair ? :D

Reply

Marsh Posté le 12-05-2004 à 16:34:55    

Oui c'est crade, bien plus que de coder en dur ta liste d'initialisation de ta combo box.

Reply

Marsh Posté le 12-05-2004 à 16:45:54    

ouije crois qur tu as raison en fait :) vé surement le modifier.

Reply

Marsh Posté le 26-05-2004 à 13:30:29    

Code :
  1. public static ArrayList getAsciiList() {
  2.   ArrayList list = new ArrayList();
  3.   list.Add("NUL" );
  4.   list.Add("SOH" );
  5.   list.Add("STX" );
  6.   list.Add("ETX" );
  7.   list.Add("EOT" );
  8.   list.Add("ENQ" );
  9.   list.Add("ACK" );
  10.   list.Add("BEL" );
  11.   list.Add("BS" );
  12.   list.Add("HT" );
  13.   list.Add("LF" );
  14.   list.Add("VT" );
  15.   list.Add("FF" );
  16.   list.Add("CR" );
  17.   list.Add("SO" );
  18.   list.Add("SI" );
  19.   list.Add("DLE" );
  20.   list.Add("DC1" );
  21.   list.Add("DC2" );
  22.   list.Add("DC3" );
  23.   list.Add("DC4" );
  24.   list.Add("NAK" );
  25.   list.Add("SYN" );
  26.   list.Add("ETB" );
  27.   list.Add("CAN" );
  28.   list.Add("EM" );
  29.   list.Add("SUB" );
  30.   list.Add("ESC" );
  31.   list.Add("FS" );
  32.   list.Add("GS" );
  33.   list.Add("RS" );
  34.   list.Add("US" );
  35.   return list;
  36.  }

Reply

Marsh Posté le 26-05-2004 à 13:31:02    

un tableau, c'est trop facile ...
 
et surtout recréer à chaque fois un truc bien défini depuis des dizaines d'années ...


Message édité par Taz le 26-05-2004 à 13:31:31
Reply

Marsh Posté le 26-05-2004 à 16:53:37    

ben ouais mais je vois pas ou le chopper sinon :(

Reply

Marsh Posté le 26-05-2004 à 17:10:14    

mais boulay, fais un un tableau readonly de string et quand ton te demande la table, ascii, tu renvoie une référence

Reply

Marsh Posté le 27-05-2004 à 09:12:49    

Citation :

et surtout recréer à chaque fois un truc bien défini depuis des dizaines d'années ...


 
je parlais de ca moi. pas du probleme du tableau.
 
Boulay toi meme :D


Message édité par meumeul le 27-05-2004 à 09:13:15
Reply

Marsh Posté le 27-05-2004 à 09:16:03    

c'est toi qui a pas compris : y a aucun intéret de recrée à chaque fois dans un conteneur dynamique quelque chose de totalement invariant

Reply

Marsh Posté le 27-05-2004 à 09:50:52    

si ca javais compris. et etant donné que je men sert un seule fois au constructeur de la forme principale, jmen fout.
 

Reply

Marsh Posté le 27-05-2004 à 09:51:51    

n'empêche
 
et bordel, utilise les propriété :o

Reply

Marsh Posté le 27-05-2004 à 11:14:12    

ouais daccord pour le nempeche.
 
utilise les proprietes ?

Reply

Marsh Posté le 27-05-2004 à 11:18:33    

- soit fais un attribut public
- soit utilise les propriété : on a jamais vu de get/set en C# bordel :o

Reply

Marsh Posté le 27-05-2004 à 12:56:58    

Taz a écrit :

- soit fais un attribut public
- soit utilise les propriété : on a jamais vu de get/set en C# bordel :o


 

Code :
  1. Object c;
  2. c.GetHashCode();
  3. c.GetType();


 
hin hin. nan mais je vois ce que tu veux dire.
 
tu parles de ces trucs la je suppose
 

Code :
  1. public Ahah nom{
  2. get { return this.ahah;}
  3. set { this.ahah= value;}
  4. }


 
ok c fait, c mieux.
Bref sinon le probleme est reglé koi
Merci, meme si tu tenerves un peu vite hin :D

Reply

Marsh Posté le 27-05-2004 à 15:48:31    

Taz, guru du C#


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 28-05-2004 à 08:54:24    

HelloWorld a écrit :

Taz, guru du C#


 :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed