Ecriture caractère spécial [Résolu]

papyvore 139 Messages postés samedi 15 novembre 2003Date d'inscription 12 décembre 2017 Dernière intervention - 7 oct. 2016 à 09:23 - Dernière réponse : f0xi 4302 Messages postés samedi 16 octobre 2004Date d'inscriptionModérateurStatut 20 mars 2017 Dernière intervention
- 12 nov. 2016 à 14:48
Bonjour,
J'ai une erreur d'écriture
avec ce code
Writeln(FileOut,UTF8Encode(Line));

quand Line contient le caractère ° comme dan N°, si je retire ce caractère tout ce passe bien.
J'ai bien essayé
Writeln(FileOut,Line);

mais j'ai la même erreur.
? je ne trouve pas la bonne function
merci de votre aide


Afficher la suite 

11 réponses

Répondre au sujet
Cirec 4191 Messages postés vendredi 23 juillet 2004Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - 7 oct. 2016 à 13:30
0
Utile
1
Salut,

as-tu essayé avec:
Writeln(FileOut,UTF8ToString(Line));

papyvore 139 Messages postés samedi 15 novembre 2003Date d'inscription 12 décembre 2017 Dernière intervention - 7 oct. 2016 à 14:16
Salut
merci, avec ça au moins je n'ai plus d'erreur ,par contre le caractère
° deviens ?
ce qui moins grave pour le moment mais j'aimerais bien trouver une solution qui m'écrive le bon cractère
Commenter la réponse de Cirec
Cirec 4191 Messages postés vendredi 23 juillet 2004Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - 7 oct. 2016 à 14:39
0
Utile
3
re,

peux-tu poster un bout du texte avec le caractère
et aussi avec quelle version de Delphi tu travailles ?
papyvore 139 Messages postés samedi 15 novembre 2003Date d'inscription 12 décembre 2017 Dernière intervention - 7 oct. 2016 à 15:37
voilà le texte
<MEMO>N°:9804312
avec xe8

en fait je crée un fichier xml
avec ça
StringReplace(Line, '°', '+chr(0176)+', [rfReplaceAll]);
Writeln(FileOut , UTF8Encode(Line));

j'ai bien le bon caractère mais à l'ouverture du xml j'ai erreur
Cirec 4191 Messages postés vendredi 23 juillet 2004Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention > papyvore 139 Messages postés samedi 15 novembre 2003Date d'inscription 12 décembre 2017 Dernière intervention - 7 oct. 2016 à 16:12
déjà j'arrive pas a reproduire l'erreur avec ça:
procedure TForm1.Button1Click(Sender: TObject);
var  F: TextFile;
     S: string;
begin
  S := 'N°:9804312';
  AssignFile(F, 'Test.txt');        
  try
    Rewrite(F);
    Writeln(F, S);         
  finally
    CloseFile(F);
  end;
end;

tout se passe très bien et le fichier est tout à fait conforme. Testé D7 & Berlin 10.1

"Line" vient d'où ? ... est de quel type ? ... est construit comment ?
papyvore 139 Messages postés samedi 15 novembre 2003Date d'inscription 12 décembre 2017 Dernière intervention > Cirec 4191 Messages postés vendredi 23 juillet 2004Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - 8 oct. 2016 à 09:41
salut
merci
Commenter la réponse de Cirec
Cirec 4191 Messages postés vendredi 23 juillet 2004Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - 8 oct. 2016 à 11:26
0
Utile
4
Euh ....

pourrait on savoir comment ?

parce que juste dire "merci" ... c'est un peut court d'autant que je n'ai rien résolu !!!
papyvore 139 Messages postés samedi 15 novembre 2003Date d'inscription 12 décembre 2017 Dernière intervention - 8 oct. 2016 à 11:42
:( désolé
C'est vrai le problème n'est pas entièrement résolut
mais comme ce prog. ne sera que pour mon utilisation,
je me satisfait de "UTF8ToString" .J'aurai un ? à la place de ° ce qui n'est pas vital pour la suite.Le problème n'est plus qu'une question "d’esthétique".
D'autant que dans mon cas ceci ne ce présentera que quelque fois dans l'année.
Cirec 4191 Messages postés vendredi 23 juillet 2004Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention > papyvore 139 Messages postés samedi 15 novembre 2003Date d'inscription 12 décembre 2017 Dernière intervention - 8 oct. 2016 à 12:10
ok
merci d'avoir répondu ;)

si tu as 2 minutes, à l'occasion, tu pourrais essayer le petit bout de code que j'ai donné plus haut
pour savoir si l'erreur se produit aussi ou non.

Voilà ... ah et aussi j'aurai bien aimé connaitre le type et le code de l'erreur obtenue ;)
papyvore 139 Messages postés samedi 15 novembre 2003Date d'inscription 12 décembre 2017 Dernière intervention > Cirec 4191 Messages postés vendredi 23 juillet 2004Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - 8 oct. 2016 à 14:32
Bien plus simple
j'adapte a mon besoin ça
http://codes-sources.commentcamarche.net/source/view/51855/1227057

j'ai testé un prog free bank2qif y a le même phénomène.
En fait pour le besoin que j'ai je voulais pas trop bosser et prendre ce qui existe.
tu comprendras que je télécharge un ofx pour en faire qif ,(un peu différent de celui proposé dans le prog).
tout marche bien sauf ce foutu caractère, tu comprend pourquoi je m'affole pas plus que ça .
f0xi 4302 Messages postés samedi 16 octobre 2004Date d'inscriptionModérateurStatut 20 mars 2017 Dernière intervention - 12 nov. 2016 à 14:48
Perso je m'embête plus avec Write/Writeln si ce n'est pour écrire des retour dans un shell.

program NumXML;

{$R *.res}

uses
  SysUtils, Classes;

begin
  with TStringList.create do
  try
    Clear;
    add('<?xml version="1.0" encoding="UTF-8"?>');
    add('<numbers>');
      add('<number><![CDATA[N°123654789]]></number>');
      add('<number><![CDATA[N°123456987]]></number>');
      add('<number><![CDATA[N°123654987]]></number>');
      add('<number><![CDATA[N°123456789]]></number>');
    add('</numbers>');
    // Delphi >= 2009
    SaveToFile('numbers.xml', Encoding.UTF8);
    // Delphi < 2009
    // SaveToFile('numbers.xml');
  finally
    Free;
  end;
end.
Commenter la réponse de Cirec

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.