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 :

Fonction de conversion


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut Fonction de conversion
    Bonjour,

    Je dois écrire une fonction de conversion,qui doit convertir du xml en dat.
    La fonction doit prendre en compte le repertoire d'entrée et de sortie ainsi qu'une autre classe.
    Seulement je ne sais pas du tout comment me lancer,si quelqu'un pouvait me donner un point de départ seulement.
    Merci

  2. #2
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    XmlTextReader ou LinqToXml te permettrait de lire le XML.

    Ensuite, on ne peut pas t'aider sans connaître le format de ton XML et du fichier DAT.

    De plus, qu'elle est donc cette classe que tu dois passer en paramètre ?
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    Il faut que je mette mon Xml dans le cache,car je dois le lire,puis récupéré certaines valeurs.

    Pour ce qui est du format,je ne sais pas,j'ai un Xml entrée et je dois avoir un Dat en sortie.Mais j'ai trouvé la solution à ce niveau là.J'ai crée un fichier Dat avec Streamwriter,ensuite je copierais les valeurs que j'aurais récupéré dans mon Xml.

    La classe que je passe en paramétre est une classe qui contient le chemin de mon répertoire d'entrée et celui de sortie ainsi qu'une autre classe qui elle contient 2 champs,qui me serviront lors de ma conversion,un pour la valeur de ma donnée dans le Xml et un autre pour la valeurs de ma donnée dans le Dat.
    Je ne sais pas si c'est très clair,j'ai essayé de l'être le plus possible

  4. #4
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Je ne vois pas pourquoi tu dois mettre ton XML en cache.
    Tu peux très bien récupérer tes valeurs en le lisant.

    As-tu regardé les objets que je t'ai indiqué ?
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    Oui,je suis d'ailleurs entrain d'essayer de faire ce que je veux avec Xmltextreader

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    J'ai un petit soucis,voici mes erreurs:
    Erreur 1 Impossible de convertir implicitement le type 'System.IO.FileInfo[]' en 'System.Collections.Generic.List<System.IO.FileInfo>
    Erreur 2 La méthode surchargée correspondant le mieux à 'System.Xml.XmlTextReader.XmlTextReader(System.Xml.XmlNameTable)' possède des arguments non valides
    Erreur 3 Argument '1'*: impossible de convertir de 'System.IO.FileInfo' en 'System.Xml.XmlNameTable'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    DirectoryInfo dirPath = new DirectoryInfo(parametreTest.repertoireEntree);
                if (dirPath.Exists)
                {
                    XmlDocument doc = new XmlDocument();
                    string nomfichier = doc.SelectSingleNode(parametreTest.NomFile).ToString();
                    string errString = nomfichier;
                    string correctString = errString.Replace(".pdf", ".tif");
                    List<FileInfo> FichierXml = dirPath.GetFiles();
     
                    for (int a = 0; a < FichierXml.Count;a++)
                    {
                        XmlTextReader lectureXml = new XmlTextReader(FichierXml[a]);
                        doc.Load(lectureXml);

  7. #7
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<FileInfo> FichierXml = dirPath.GetFiles();
    Si tu avais cherché un peu sur MSDN, tu saurais que GetFiles renvoie un tableau de FileInfo : http://msdn.microsoft.com/en-us/library/4cyf24ss.aspx.

    Donc soit tu utilise un tableau, soit tu convertis le tableau retourné en liste. Au passage, pour faire une boucle, pas besoin de liste.

    Pour la suite, tu tente de faire passer un FileInfo dans le constructeur de XmlTextReader qui prends soit le nom de fichier, soit un autre TextReader...
    Il faut que tu utilise une des propriétés du FileInfo, comme Name ou FullName, je ne me souviens plus exactement.

    En résumé : regarde ce que fait et comment utiliser les méthodes dont tu as besoin. Cela t'évitera beaucoup de tracas.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Points : 369
    Points
    369
    Par défaut
    L'erreur 1 m'a tout l'air là dessus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<FileInfo> FichierXml = dirPath.GetFiles();
    Essaye peut être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    foreach(FileInfo myFileInfo in dirPath.GetFiles())

    Erreur 2 c'est le path du fileinfo qu'il faut donner :

    Dans ton cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XmlTextReader lectureXml = new XmlTextReader(FichierXml[a].FullPath);
    Ou si tu suis ce que j'ai écris plus haut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XmlTextReader lectureXml = new XmlTextReader(myFileInfo.FullPath);
    Erreur 3 : se corrigera avec la deux je pense.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    Merci pour votre aide.
    NejNej j'ai essayé ta solution mais cela me génére une nouvelle erreur
    Erreur 1 'System.IO.FileSystemInfo.FullPath' est inaccessible en raison de son niveau de protection
    Je ne comprends pas,cette erreur est lié avec public et private,hors je n'ai rien de tel ici.

  10. #10
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    FullPath est un champ privé.

    Tente donc avec FullName, comme je l'ai indiqué plus haut...
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    Merci cela compile maintenant.Je vais le tester avec des fichiers.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    J'ai l'exception NullReferenceException à cette ligne là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string nomfichier = doc.SelectSingleNode(parametreTest.NomFile).ToString();
    Pourtant il me semble que ma réference est bonne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parametreTest.NomFile = "metadata/files/file/fileName";
    Sachant que je veux récupéré le fileName.
    Mon xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <metadata
    xmlns="http://www.sharp-world.com/sharp-mfp-metadata/datatypes" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sharp-world.com/sharp-mfp-metadata/datatypes datatypes.xsd">
     
    	<files>
    		<file format="pdf" encoding="none" encryption="none" compression="G4" colorSpace="none">
    			<fileName>MX-2700N_20090820_125441_98a336038b74_001.pdf</fileName>
    			<fileLocation/>
    		</file>
    	</files>

  13. #13
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    De quel type est parametreTest ?

    Pourquoi passes-tu par lui plutôt que de mettre directement le chemin ?

    Si tu regardais les valeurs des variables lorsque tu as l'exception, je pense que tu verrais que c'est doc qui est nul.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    parametreTest est de type parametre,une classe que j'ai créé.

    Je passe par lui car cela simplifie tout mon code.

    J'ai regardé la valeur des variables en effet c'est doc qui est null.

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    XmlTextReader lectureXml = new XmlTextReader(myFileInfo.FullName);
              doc.Load(lectureXml);
    J'ai une erreur de type XmlEception sur la ligne Dans la description de l'erreur j'ai
    "Element racine manquant".

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    J'ai trouvé mon erreur.J'essaye de lire un fichier .tif au lieu d'un .xml

  17. #17
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Traduction : ton XML est mal-formé. Désolé pour lui.

    [Edit] Ah oui, c'est sûr que ça marche moins bien avec une image
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    Mais avec quelle méthode je peux mettre la condition que je ne veux lire que des fichiers xml??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (myFileInfo.FullName = Condition pour démarrer si seulement c'est un .xml  
                        XmlTextReader lectureXml = new XmlTextReader(myFileInfo.FullName);
                        doc.Load(lectureXml);

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par laedit Voir le message
    Traduction : ton XML est mal-formé. Désolé pour lui.

    [Edit] Ah oui, c'est sûr que ça marche moins bien avec une image
    Il faut que je mette un filtre pour chopper que les xml de mon dossier

  20. #20
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    La classe FileInfo a une propriété Extension : http://msdn.microsoft.com/en-us/libr...8VS.80%29.aspx

    Comme d'habitude, je répète que se renseigner sur les objets que l'on utilise évite de chercher des solutions pendant 2 jours.
    La MSDN est la documentation sur le framework .net, n'hésite surtout pas à y faire un tour.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

Discussions similaires

  1. Fonction de conversion de nombre en lettres
    Par david_chardonnet dans le forum Langage
    Réponses: 21
    Dernier message: 08/12/2021, 17h51
  2. Fonction de conversion de volume
    Par soso78 dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 23/08/2005, 21h12
  3. [TestStand] Fonction de conversion...
    Par capblans dans le forum Autres langages
    Réponses: 4
    Dernier message: 26/04/2005, 08h58
  4. Réponses: 5
    Dernier message: 12/01/2005, 20h58
  5. Fonction de conversion de COLORREF en hexadécimal?
    Par charliejo dans le forum MFC
    Réponses: 4
    Dernier message: 21/02/2004, 18h25

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