Quoi, tu ne connais pas PB ? Va falloir parcourir tout le forum alors !

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.
  • Index
  •  » Powerscripts
  •  » [RESOLU] PBDOM et DataStore : Ecrire des XML sans BOM (marque du codage UTF)

#1 28-05-2008 16:31:53

Adrien  
Membre
Date d'inscription: 26-03-2008
Messages: 5
Pépites: 10,029
Banque: 0

[RESOLU] PBDOM et DataStore : Ecrire des XML sans BOM (marque du codage UTF)

Bonjour,

je me permet de poster ici car je suis confronté à un problème assez embêtant et malheureusement la fonction recherche du forum ne m'a pas aidé, tout comme l'aide Sybase (j'utilise PB 10.5.2). Je m'explique.

Générant des fichiers XML grâce à l'export de datastore mais aussi grâce à l'objet PBDOM (la solution avait d'ailleurs été trouvée sur ce forum, encore merci), PowerBuilder rajoute automatiquement en début de fichier un code correspondant à l'encodage utilisé. Pour ceux qui ne connaissent pas, voir le lien suivant :

http://unicode.org/faq/utf_bom.html#BOM

Le problème est que le programme qui lit les fichiers générés remarque ces caractères spéciaux et rejette mon document...et bien sur je n'ai pas la main desssus. En plus c'est assez vicieux car beaucoup de programme ne l'affiche pas, tout du moins par défaut (genre WordPad, UltraEdit, etc...).

Ma question est donc : est-il possible de forcer PowerBuilder à ne pas mettre ce code au début du document ? Si oui, comment ?

Merci par avance pour vos réponses.

Cordialement, Adrien.

Dernière modification par Adrien (20-06-2008 09:46:28)

Hors ligne

 

#2 20-06-2008 09:45:48

Adrien  
Membre
Date d'inscription: 26-03-2008
Messages: 5
Pépites: 10,029
Banque: 0

Re: [RESOLU] PBDOM et DataStore : Ecrire des XML sans BOM (marque du codage UTF)

Bonjour,

N'étant pas passé par le forum depuis un bout de temps, j'en profite pour poster la solution que j'ai mise en oeuvre pour contrer ce problème, avec ma fonction d'écriture de fichier XML :

Code: pb

Integer  li_FileNum
Long  ll_nbBitsWritten
Blob  lblb_TemporaryBinaryObject

//Définition de l'entête du XML (dont l'encodage utilisé : sans BOM car ANSI, contrairement à l'UNICODE)
is_XML_Meta = "<?xml version='1.0' encoding='windows-1252' standalone='no'?>"

//On converti la chaîne dans un 'Large Binary Object' encodé en ANSI, donc sans BOM
lblb_TemporaryBinaryObject = Blob(is_XML_Meta + is_un_flux_xml, EncodingANSI!)

//On désigne le fichier dans lequel il faut écrire, et on paramètre l'écriture pour replacer le précédent fichier (au cas où)
li_FileNum = FileOpen(as_physical_location + as_document_id, TextMode!, Write!, Shared!, Replace!)

//On lance l'écriture du fichier et on récupère le nombre de bit écrit, si il est égal à -1 c'est que l'écriture a raté
ll_nbBitsWritten = FileWriteEx(li_FileNum, lblb_TemporaryBinaryObject)

//On retourne un code de succès si le nombre de bit écrit ne correspond pas à un code d'erreur
RETURN (ll_nbBitsWritten <> -1)


Et voila cette solution est parfaite et consomme moins de ressource que PBDOM, à bon entendeur ;).

A bientôt.

Hors ligne

 

#3 20-06-2008 09:58:41

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] PBDOM et DataStore : Ecrire des XML sans BOM (marque du codage UTF)

Merci pour ce bout de code


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#4 20-06-2008 10:00:07

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] PBDOM et DataStore : Ecrire des XML sans BOM (marque du codage UTF)

+10000


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 
  • Index
  •  » Powerscripts
  •  » [RESOLU] PBDOM et DataStore : Ecrire des XML sans BOM (marque du codage UTF)

Pied de page des forums

Propulsé par FluxBB 1.2.22