Ecriture caractère spécial

Résolu
papyvore Messages postés 223 Date d'inscription samedi 15 novembre 2003 Statut Membre Dernière intervention 16 décembre 2021 - 7 oct. 2016 à 09:23
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 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


A voir également:

3 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
7 oct. 2016 à 13:30
Salut,

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

0
papyvore Messages postés 223 Date d'inscription samedi 15 novembre 2003 Statut Membre Dernière intervention 16 décembre 2021 15
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
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
7 oct. 2016 à 14:39
re,

peux-tu poster un bout du texte avec le caractère
et aussi avec quelle version de Delphi tu travailles ?
0
papyvore Messages postés 223 Date d'inscription samedi 15 novembre 2003 Statut Membre Dernière intervention 16 décembre 2021 15
Modifié par papyvore le 7/10/2016 à 15:42
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
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50 > papyvore Messages postés 223 Date d'inscription samedi 15 novembre 2003 Statut Membre Dernière intervention 16 décembre 2021
Modifié par Cirec le 7/10/2016 à 16:16
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 ?
0
papyvore Messages postés 223 Date d'inscription samedi 15 novembre 2003 Statut Membre Dernière intervention 16 décembre 2021 15 > Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022
8 oct. 2016 à 09:41
salut
merci
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
8 oct. 2016 à 11:26
Euh ....

pourrait on savoir comment ?

parce que juste dire "merci" ... c'est un peut court d'autant que je n'ai rien résolu !!!
0
papyvore Messages postés 223 Date d'inscription samedi 15 novembre 2003 Statut Membre Dernière intervention 16 décembre 2021 15
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.
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50 > papyvore Messages postés 223 Date d'inscription samedi 15 novembre 2003 Statut Membre Dernière intervention 16 décembre 2021
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 ;)
0
papyvore Messages postés 223 Date d'inscription samedi 15 novembre 2003 Statut Membre Dernière intervention 16 décembre 2021 15 > Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022
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 .
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
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.
0
Rejoignez-nous