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

Messages postés
161
Date d'inscription
samedi 15 novembre 2003
Dernière intervention
10 décembre 2018
- - Dernière réponse : f0xi
Messages postés
4304
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
9 mars 2018
- 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 

Votre réponse

3 réponses

Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
3 août 2018
0
Merci
Salut,

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

papyvore
Messages postés
161
Date d'inscription
samedi 15 novembre 2003
Dernière intervention
10 décembre 2018
-
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
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
3 août 2018
0
Merci
re,

peux-tu poster un bout du texte avec le caractère
et aussi avec quelle version de Delphi tu travailles ?
papyvore
Messages postés
161
Date d'inscription
samedi 15 novembre 2003
Dernière intervention
10 décembre 2018
-
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
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
3 août 2018
> papyvore
Messages postés
161
Date d'inscription
samedi 15 novembre 2003
Dernière intervention
10 décembre 2018
-
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
Messages postés
161
Date d'inscription
samedi 15 novembre 2003
Dernière intervention
10 décembre 2018
> Cirec
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
3 août 2018
-
salut
merci
Commenter la réponse de Cirec
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
3 août 2018
0
Merci
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
Messages postés
161
Date d'inscription
samedi 15 novembre 2003
Dernière intervention
10 décembre 2018
-
:( 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
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
3 août 2018
> papyvore
Messages postés
161
Date d'inscription
samedi 15 novembre 2003
Dernière intervention
10 décembre 2018
-
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
Messages postés
161
Date d'inscription
samedi 15 novembre 2003
Dernière intervention
10 décembre 2018
> Cirec
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
3 août 2018
-
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
Messages postés
4304
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
9 mars 2018
-
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.