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

Dotnet Discussion :

Problème chargement fichier XML vers un DataSet


Sujet :

Dotnet

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 123
    Points : 77
    Points
    77
    Par défaut Problème chargement fichier XML vers un DataSet
    Bonjour à tous,

    Ce post est la suite de "XML vers DataSet : Problème de caractère spéciaux" posté le 31/12/08.

    Je génère des fichiers XML avec Visual Studio 2005/VB.NET via une tache SSIS (SQL Server Integration Services). Ces Fichier sont codés par défaut en ANSI.

    Depuis une appli web (Visual studio 2008/C#) j'essaye de recharger ces fichiers XML dans un DataSet mais je suis obligé d'ouvrir le fichier avec un éditeur de texte et les ré-enregistrer avec un encodage UTF-8, sinon ça me génère une erreur.

    Ma question est : est ce que c'est possible de spécifier le format d'encodage lors de la création du fichier ou lors du rechargement pour automatiser le processus?

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dataset ds = new DataSet();
    // bla bla bla
    ds.WriteXml("D:\\MonFichier.xml")
    // bla bla bla
    ds.ReadXml("D:\\MonFichier.xml")

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    of course

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // Ecriture
    StreamWriter sw = New StreamWriter("D:\\MonFichier.xml", false, Encoding.UTF8);
    ds.WriteXml(sw);
    sw.Close();
     
    // Lecture
    StreamReader rd = New StreamReader("D:\\MonFichier.xml", Encoding.UTF8);
    ds.ReadXml(rd);
    rd.Close();

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 123
    Points : 77
    Points
    77
    Par défaut
    Merci pour l'info !!! je cherchais du coté ReadXml & WriteXml !!!
    Impec!
    @+

  4. #4
    Membre émérite
    Avatar de Merlin
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2002
    Messages
    524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 524
    Points : 2 883
    Points
    2 883
    Par défaut
    Citation Envoyé par tomlev Voir le message
    of course

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // Lecture
    StreamReader rd = New StreamReader("D:\\MonFichier.xml", Encoding.UTF8);
    ds.ReadXml(rd);
    rd.Close();
    Même si ça date comme thread, une remarque pour ceux qui tomberont dessus :
    Pour lire un CDS Delphi qui contient des accentuées, il faut en réalité utiliser
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // Lecture
    StreamReader rd = New StreamReader("D:\\MonFichier.xml", Encoding.Default);
    ds.ReadXml(rd);
    rd.Close();

    Default utilise l'ANSI (l'option ANSI n'existe pas dans l'énumération, c'est Default qui joue se rôle).
    En utilisant cette séquence là on peut ouvrir sans perte d'accentuées un fichier créé par un TClientDataSet Delphi même récent.

    Exemple d'utilisation : lecture depuis C# du fichier log.xml du programme Cumulus (gestion de station météo), appli faite en delphi et qui pour ce fichier utilise la sauvegarde xml d'un TClientDataSet.
    Pour ce lier à une Datagrid il suffit d'ajouter au code précédent :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    dataGrid1.DataSource = aDS;
    dataGrid1.DataMember = "ROW";
    et on peut directement utiliser le contenu du TClientDataSet.

    La sauvegarde marche aussi par un simle aDS.WriteXml() en utilisant un StreamWriter avec encodage ANSI si on veut que l'appli Delphi puisse réutiliser le fichier et ses accentuées.

    On sait jamais ça peut toujour servir à qqun !

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Merlin Voir le message
    Default utilise l'ANSI (l'option ANSI n'existe pas dans l'énumération, c'est Default qui joue se rôle).
    Juste une petite remarque en passant : à strictement parler, il ne s'agit pas d'une énumération
    Il y a juste quelques propriétés statiques readonly pour accéder plus facilement aux encodages les plus fréquemment utilisés.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/10/2006, 18h27
  2. [C#] Problème chargement fichier xml dans treeview
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/06/2006, 14h10
  3. [VB NET]: Modifier un fichier XML via un DataSet
    Par ADONET dans le forum Windows Forms
    Réponses: 1
    Dernier message: 08/02/2006, 18h54
  4. newbie : fichier xml vers html via command-line
    Par morti dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 08/11/2005, 07h34
  5. [SAX] Problème lecture fichier xml
    Par BernardT dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 07/07/2005, 18h11

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