IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Transcodification d'un fichier xml


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Points : 54
    Points
    54
    Par défaut Transcodification d'un fichier xml


    Bonjour,

    programmation en Visual Basic


    Un fichier xml en entrée codé en UFT8, celui de sortie doit l'être en ISO-8859-15, existe t-il une fonction permettant de transcoder sans être obligé de traiter un par un l'ensemble des caractéres?

    sinon quel moyen simple et rapide utiliser (fichier quotidien de 25 mega)

    Merci pour vos suggestions, A+

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Points : 54
    Points
    54
    Par défaut
    Bonjour,

    Je sais lire un fichier UTF-8

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim FileHeader As StreamReader = New System.IO.StreamReader(TreeFichierHeader, Encoding.UTF8)
    LigneLueString = FileHeader.ReadLine()
    par contre je n'arrive pas à transcoder en utilisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            Dim LigneLueByte As Byte() = [FromCode].GetBytes(LigneLueString)
            Dim LigneTransCodeeByte As Byte() = Encoding.Convert([FromCode], [ToCode], LigneLueByte)
     
            Dim asciiChars([ToCode].GetCharCount(LigneTransCodeeByte, 0, LigneTransCodeeByte.Length) - 1) As Char
            [ToCode].GetChars(LigneTransCodeeByte, 0, LigneTransCodeeByte.Length, asciiChars, 0)
            Dim LigneTransCodeeString As New String(asciiChars)
     
            FileHeaderTransCode.WriteLine(LigneTransCodeeString)
    où les valeurs FromCode et ToCode sont:
    [FromCode] = Encoding.UTF8
    [ToCode] = Encoding.ASCII
    J'ai bien l'impression de ne rien comprendre car ce que je souhaite c'est disposer d'un fichier entrée .xml contenant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="UTF-8"?>
    <display-name>France Ô</display-name>
    et de sortie en utilisant l'éditeur xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="ISO-8859-15"?>
    <display-name>France Ô</display-name>
    alors que je récupére en utilisant l'éditeur xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="ISO-8859-15"?>
    <display-name>France ?</display-name>
    Où est l'erreur, dans la définition de ToCode, du code de transcodage?

    Merci de vos conseils A+

  3. #3
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Using reader As StreamReader = New StreamReader("C:\source.xml", Encoding.UTF8)
    Using writer As StreamWriter = New StreamWriter("C:\destination.xml", False, Encoding.GetEncoding("ISO-8859-15"))
        Dim document As XmlDocument = New XmlDocument()
        document.Load(reader)
        document.Save(writer)
    End Using
    End Using
    Il faudra tester sur les gros fichiers pour voir si cela convient car le contenu du document est chargé en mémoire avec cette méthode. Mais bon, 25Mo ce n'est pas énorme avec la mémoire dont dispose les machines aujourd'hui.

    Le résultat devrait être le bon en tout cas.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Points : 54
    Points
    54
    Par défaut La solution
    Bonjour et un grand merci, d'une simplicité biblique

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recuperation du fichier xml
    Par Geulderack dans le forum XMLRAD
    Réponses: 10
    Dernier message: 28/02/2003, 11h06
  2. Insertion dans un fichier XML
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 4
    Dernier message: 27/02/2003, 17h16
  3. Lire un attribut dans un fichier XML en C++
    Par ti.k-nar dans le forum XML
    Réponses: 2
    Dernier message: 14/10/2002, 15h22
  4. [Kylix] Composant IBM pour fichiers XML
    Par Mister Nono dans le forum EDI
    Réponses: 1
    Dernier message: 29/09/2002, 20h28
  5. Balises HTML dans un fichier XML
    Par Bastet79 dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 04/09/2002, 15h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo