[C#] Remplacer le symbole € par valeur hexadecimale [Résolu]

Remplacer le symbole € par valeur hexadecimale [Résolu] [C#] - C#/.NET managed - Programmation

Marsh Posté le 16-04-2012 à 21:17:14    

Bonjour,
 
J'ai un fichier .csv dans lequel il y a des symboles € (correspondant à la valeur décimale 128 après test).
Je voudrais simplement remplacer ce symbole par la chaîne de caractères "€" pour une exploitation ultérieure du .csv.
 
J'ai donc réalisé ce code
 

Code :
  1. //Fait un tableau de lignes avec le fichier csv
  2. string[] tabSource = File.ReadAllLines(cheminSource, System.Text.Encoding.GetEncoding("iso-8859-15" ));
  3. //Pour chaque ligne, je remplace certains caractères spéciaux
  4. foreach (string line in tabSource)
  5.             {
  6.                
  7.                     string euro = (IntToChar(128)).ToString();
  8.                    
  9.                     line.Replace(">", ">" );
  10.                     line.Replace("<", "&lt;" );
  11.                     line.Replace(euro, "&#x20AC;" );
  12.                     // CE TEST RETOURNE BIEN LA VALEUR 128 POUR LE SYMBOLE €
  13.                     //foreach (char caractere in line)
  14.                     //    if (caractere == IntToChar(128))
  15.                     //    {       
  16.                     //        Console.WriteLine("EURO OK !!!" );
  17.                     //        Console.WriteLine(CharToInt(caractere));
  18.                     //        Console.ReadKey();
  19.                     //    }
  20.                     //    else { Console.WriteLine("failed" ); }
  21.   }


 
Le remplacement des caractères '>' et '<' se déroule sans problème.
Le code line.Replace("€", "&#x20AC;" ); ne trouve pas le symbole €, d'où la nécessité de passer par la valeur décimale.
Malgré tout, le code line.Replace(euro, "&#x20AC;" ); ne fonctionne pas plus alors que le test fonctionne...
 
Comment faire ?  :pt1cable:


Message édité par ltik le 23-04-2012 à 18:08:22
Reply

Marsh Posté le 16-04-2012 à 21:17:14   

Reply

Marsh Posté le 17-04-2012 à 20:03:12    

Help...

Reply

Marsh Posté le 19-04-2012 à 17:58:16    

J'ai l'impression d'avoir posé une colle... Plus de 50 lectures du sujet pourtant...  
 
Et j'ai le même problème avec les double quote (" ) et oe (o dans l'e)...  aïeaïeaïe !

Reply

Marsh Posté le 19-04-2012 à 20:53:12    

Salut,
 
Oulah oui, c'est un problème ultra compliqué .... :)
Tu utilises la fonction replace mais tu ne récupères pas la valeur de retour.
 
Avec ça, ça devrait aller mieux :
line = line.Replace(euro, "&#x20AC;" );
 
Mais vu ton code, les caractères '>' et '< ne doivent pas marcher non plus


---------------
"Je ne suis pas con, je fais de la rétention d'intelligence, Nuance" Philippe Geluck. ---- Ils sont chauves mes smileys
Reply

Marsh Posté le 21-04-2012 à 12:39:12    

Si!Si! Ca fonctionne très bien avec les caractères '<' et '>' car line est une variable d'itération d'une boucle foreach. Pas la peine de retaper le line =. Ce n'est pas accepté d'ailleurs.
 
Merci quand même d'avoir tenté une réponse... S'il y a d'autres idées, je suis preneuse...

Reply

Marsh Posté le 23-04-2012 à 18:07:49    

Exact ! Il suffisait de passer par une nouvelle chaine dans la boucle foreach...  
 

Code :
  1. string newline = line.Replace(euro, "&#x20AC;" );


 
 :whistle: C'était effectivement tout simple...  :lol: Merci à vous 2 !

Reply

Sujets relatifs:

Leave a Replay

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