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

Windows Forms Discussion :

Stocker un XML dans un Stream [Fait]


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 138
    Points : 37
    Points
    37
    Par défaut Stocker un XML dans un Stream
    Salut,
    je cree un fichier xml et je l'enregistre sur disk comme le montre le code suivant:

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim myXmlTextWriter As XmlTextWriter = New XmlTextWriter(Application.StartupPath + "\test.xml", System.Text.Encoding.UTF8)

    est ce que c'est possible de l'nregistré dans un stream?
    si c'est oui comment?
    Merci

  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
    Faudrait vraiment apprendre à utiliser la doc
    http://msdn.microsoft.com/fr-fr/libr...extwriter.aspx

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 138
    Points : 37
    Points
    37
    Par défaut
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            Dim objMemStrm As MemoryStream = New MemoryStream
     
            Dim myXmlTextWriter As XmlTextWriter = New XmlTextWriter(objMemStrm, System.Text.Encoding.UTF8)

    voila ce que j'ai fais .
    mais je veux lire les doonnées qui sont dans ce Stream !!
    j'ai fais :

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            Dim instance As New XmlTextReader(objMemStrm)
    msgbox(instance.tostribg)

    il m'affiche une erreur :

    "Impossible d'accéder à un Stream fermé."


  4. #4
    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
    J'ai pas tout compris...
    Tu veux écrire du XML dans un MemoryStream, puis le relire à partir du MemoryStream ?
    Dans ce cas il faut que tu "rembobine" le MemoryStream, i.e. que tu te replaces au début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objMemStrm.Seek(0, SeekOrigin.Begin)

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 138
    Points : 37
    Points
    37
    Par défaut
    bon je vous rexplique deuis le debut

    je recupere un xml d'une source de données
    je fais manipulation sur ce fichier

    apres avoir fini mes modifications je reecris un fichier xml (en utilisnat XmlTextWriter )mais je veux pas le sauvegarder sur le disque dure.pour cela j'ai fais :

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Dim objMemStrm As MemoryStream = New MemoryStream
         Dim myXmlTextWriter As XmlTextWriter = New XmlTextWriter(objMemStrm, System.Text.Encoding.UTF8)

    apres je veux lire les données de ce stream ( pour etre sur qu'il contient mes données ).
    voila c'est tout.
    une autre demande si vous le permetez; est ce qu'il est possible al la place de MemoryStream que j'utilise byte ?
    Merci

  6. #6
    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 Ya7yaKech Voir le message
    apres je veux lire les données de ce stream ( pour etre sur qu'il contient mes données ).
    OK, donc c'est bien ce que je disais : il faut revenir au début du Stream avec Seek

    Citation Envoyé par Ya7yaKech Voir le message
    une autre demande si vous le permetez; est ce qu'il est possible al la place de MemoryStream que j'utilise byte ?
    Ben en fait un MemoryStream peut te renvoyer son buffer sous forme d'un tableau de byte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim b() as Byte = objMemStrm.GetBuffer()

  7. #7
    Membre actif Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Points : 290
    Points
    290
    Par défaut
    Pour la modification inspirez vous de ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
       'Definir la mémoir ou vous allez écrir
            Dim xmlMemoryStream As IO.MemoryStream = New IO.MemoryStream()
            'Ecriture
            Dim myXmlTextWriter As XmlTextWriter = New XmlTextWriter(xmlMemoryStream, System.Text.Encoding.UTF8)
            'Lecture
            xmlMemoryStream.Position = 0
            Dim xmlStreamReader As IO.StreamReader = New IO.StreamReader(xmlMemoryStream)
            xmlStreamReader.ReadToEnd()
    pour Byte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim bStream As Byte() = xmlMemoryStream.GetBuffer()

  8. #8
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Décembre 2008
    Messages : 256
    Points : 311
    Points
    311
    Par défaut
    Citation Envoyé par Ya7yaKech Voir le message
    apres je veux lire les données de ce stream ( pour etre sur qu'il contient mes données ).

    C'est pas un peu curieux ça ??
    Pourquoi ce manque de confiance ?
    Il y a toujours au moins deux solutions à un problème.

    http://software-design-development.blogspot.com/

  9. #9
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 138
    Points : 37
    Points
    37
    Par défaut
    Impossible d'accéder à un Stream fermé.
    c'est ce qu'il m'affiche comme erreur quand je fais
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     objStream.Seek(0, SeekOrigin.Begin)

    ou ca aussi
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            objStream.Position = 0
            Dim xmlStreamReader As IO.StreamReader = New IO.StreamReader(objStream)
            xmlStreamReader.ReadToEnd()

    la raison de vouloir lire mes données c'est juste pour etre sur qu'ils sont bien manipulés.
    mais pour moi c'est important d'etre sure.
    Merci

  10. #10
    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
    si tu peux pas réutiliser le même stream, crées en un nouveau à partir du buffer du premier...

  11. #11
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 138
    Points : 37
    Points
    37
    Par défaut
    vous voulez bien me montrer comment je peux le faire?
    car la je commence vraiment a craker de fatigue
    et je vous serai reconnaissant
    Merci

  12. #12
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Dim objMemStrm As MemoryStream = New MemoryStream
        Dim myXmlTextWriter As XmlTextWriter = New XmlTextWriter(objMemStrm, System.Text.Encoding.UTF8)
        Dim b() as Byte = objMemStrm.GetBuffer()
        objMemStrm = New MemoryStream(b)
        Dim xmlStreamReader As IO.StreamReader = New IO.StreamReader(objMemStrm)
        xmlStreamReader.ReadToEnd()
    Au fait, dans ton code, tu utilisais objMemStrm pour écrire, et objStream pour lire... c'est exprès ? Parce que si c'est pas exprès, ça pourrait expliquer tes problèmes...

    EDIT: au fait, je viens de réaliser un truc... oh, un détail
    tu crées un XmlWriter, mais tu n'écris pas dedans
    (et moi non plus dans le code que j'ai écrit...)

  13. #13
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 138
    Points : 37
    Points
    37
    Par défaut
    on peut dire que c'est exprès
    car j'ai fais deux codes avec deux déclarations
    bon tout ce que je veux vous dire c'est MERCIIIIIIIIIIIIIIIIIIIII

  14. #14
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Décembre 2008
    Messages : 256
    Points : 311
    Points
    311
    Par défaut
    Citation Envoyé par Ya7yaKech Voir le message
    la raison de vouloir lire mes données c'est juste pour etre sur qu'ils sont bien manipulés.
    mais pour moi c'est important d'etre sure.
    Ben dans ce cas là il te faut développer des test unitaires pour tes fonctions de manipulation et d'écriture de XML.
    Il y a toujours au moins deux solutions à un problème.

    http://software-design-development.blogspot.com/

  15. #15
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 138
    Points : 37
    Points
    37
    Par défaut
    des testes unitaires !!??
    c'est nouveau pour moi
    pouvez vous m'en dire plus?

    Merci d'avance

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

Discussions similaires

  1. [Débutant] C#, Stocker itération XML dans Array ou list
    Par Benmaster1 dans le forum C#
    Réponses: 5
    Dernier message: 20/12/2013, 16h00
  2. Réponses: 0
    Dernier message: 10/08/2007, 18h26
  3. stocker une image dans un document XML
    Par freakss dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 28/03/2007, 18h39
  4. Comment stocker des tables dans un fichier XML ?
    Par TicTacToe dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 24/09/2006, 16h18
  5. [XML] stocker des données dans un fichier XML
    Par R3iTt0R dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 27/05/2005, 16h51

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