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 :

Récupéré variable d'une classe


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 Récupéré variable d'une classe
    Bonjour,
    J'ai 2 classes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class UserMetadataSetUser_
        {
     
            private string promptField;
     
            private string tagField;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    private List<UserMetadataSetUser_> userMetadataSetField;
     
    public List<UserMetadataSetUser_> userMetadataSet
            {
                get
                {
                    if (this.userMetadataSetField == null) this.userMetadataSetField = new List<UserMetadataSetUser_>();
                    return this.userMetadataSetField;
                }
                set
                {
                    this.userMetadataSetField = value;
                }
            }
    J'aimerais récupéré la valeur de prompt.

    Voici le début de mon form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ZeDOC.SharpNS.Metadata MyFileValeurForMappage = new ZeDOC.SharpNS.Metadata();
     
                mappage DataTime = new mappage(MyFileValeurForMappage.dateTime, "DataTime"();
                mappage Prompt = new ......
    Je ne sais pas comment récupéré la valeur de prompt.

  2. #2
    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
    Avec des accesseurs?

  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
    Lesquels?Merci

  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
    Champ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private String promptField;
    Propriété (implémentation des accesseurs, en l'occurence juste le get) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public String PromptField
    {
        get { return this.promptField; }
    }
    Si tu ne sais pas ça, je te conseille de relire quelques tutos expliquant les bases du .net ou de la programmation objet

  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
    Ah d'accord,mais ça je l'ai déjà fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    System.Xml.Serialization.XmlArrayItemAttribute("user_", typeof(UserMetadataSetUser_), IsNullable = false)]
            public List<UserMetadataSetUser_> userMetadataSet
            {
                get
                {
                    if (this.userMetadataSetField == null) this.userMetadataSetField = new List<UserMetadataSetUser_>();
                    return this.userMetadataSetField;
                }
                set
                {
                    this.userMetadataSetField = value;
                }
            }
    Et dans ma 2éme classe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public string prompt
            {
                get
                {
                    return this.promptField;
                }
                set
                {
                    this.promptField = value;
                }
            }
    Mais je n'arrive pas à récupéré la valeur de prompt.

  6. #6
    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
    Comment ça tu n'arrive pas à récupérer les données ?

    Que se passe t-il quand tu essaye ?

    Tu as un message d'erreur ?

  7. #7
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    A mon avis c'est tellement low-level qu'on ne voit pas ;-).

    Si tu pouvais un peu éclaircir le context:
    - C'est quoi cette lib que tu utilise?
    - je vois que tu utilises une liste, tu l'initialises comment?
    - Si ta liste est dejà initialisée, je ferais un petit foreach sur la liste et puis tu accèdes à chaque objet de la classe UserMetadataSetUser_

    Bref, avec un minimum d'info on devrait s'en sortir....

  8. #8
    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
    Ouais c'était ultra low-level enfaite.
    J'ai trouvé ça comme solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     mappage nomFilemappage = new mappage(myFile.files[0].fileName.ToString(), "File");
    Maintenant j'ai un autre soucis peut-être un poil plus dur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dat.WriteLine(valeur.ValeurDat + ":" + doc.SelectSingleNode(valeur.ValeurXml).Value.ToString());
    Voici l'erreur au niveau de valeur.ValeurXml:
    '2009-08-20T12:54:41' a un nom qualifié non valide.

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 170
    Points : 12 291
    Points
    12 291
    Par défaut
    "SelectSingleNode" veut une expression XPath et "valeur.ValeurXml" à une valeur égale à "'2009-08-20T12:54:41'" qui n'est pas une expression XPath valide.
    Lisez la doc et les exemples.

  10. #10
    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
    Je te remercie de ta réponse,j'ai résolu mon problème.

    Par contre,j'ai l'erreur
    "Le processus ne peut pas accéder au fichier car il est en cours d'utilisation par un autre processus."
    lorsque je veux écrire dans mon fichier que je viens de créer.
    J'ai essayé de mettre close et dispose avant de vouloir écrire dans mon fichier,mais rien n'y fait

  11. #11
    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
    Donne nous le code de création du fichier, ainsi que celui de l'ouverture

  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
    Voici mon 1er essai,avec ça,ça bloque à Streamwriter,au 1er passage dans la boucle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    File.Create(parametre.repertoireSortie + errString + ".dat");
                            Close();
                            Dispose(false);
     
                            //Boucle sur la liste pour récupéré valeur du Xml          
                            for (int i = 0; i < parametre.listeMappage.Count; i++)
                            {
                                mappage valeur = parametre.listeMappage[i];
                                StreamWriter sw = new StreamWriter(parametre.repertoireSortie + errString + ".dat");
                                sw.Write("\r\n" + valeur.ValeurDat + " : " + valeur.ValeurXml);
                                Close();
                            }
    Avec ça,ça bloque à Streamwriter au 2éme passage dans la boucle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    FileStream fs = File.Create(parametre.repertoireSortie + errString + ".dat");
                            fs.Close();
     
     
                            //Boucle sur la liste pour récupéré valeur du Xml          
                            for (int i = 0; i < parametre.listeMappage.Count; i++)
                            {
                                mappage valeur = parametre.listeMappage[i];
                                StreamWriter sw = new StreamWriter(parametre.repertoireSortie + errString + ".dat");
                                sw.Write("\r\n" + valeur.ValeurDat + " : " + valeur.ValeurXml);
                                Close();

  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
    Ton 2° bout de code est meilleure que ton premier, mais il manque encore un truc.

    Dans le second bout de code, au début tu ferme ton fichier.La deuxième dois, ce n'est pas la méthode Close du fichier que tu appelle.

    Fais un fs.Close(), ça marchera mieux.

  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
    J'ai fait comme tu m'as dit mais j'ai toujours cette erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    FileStream fs = File.Create(parametre.repertoireSortie + errString + ".dat");
                            fs.Close();
     
     
                            //Boucle sur la liste pour récupéré valeur du Xml          
                            for (int i = 0; i < parametre.listeMappage.Count; i++)
                            {
                                mappage valeur = parametre.listeMappage[i];
                                StreamWriter sw = new StreamWriter(parametre.repertoireSortie + errString + ".dat");
                                sw.Write("\r\n" + valeur.ValeurDat + " : " + valeur.ValeurXml);
                                fs.Close();
                                fs.Dispose();

  15. #15
    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
    Pourquoi ne ferais-tu par l'ouverture et la fermeture du fichier en dehors de la boucle ?

    ça ne sers à rien de l'ouvrir à chaque fois que tu veux rajouter une ligne, ouvre le, rajoute toutes tes données et ferme le.

    Ton erreur arrive car je n'ai pas fait gaffe à tes noms de variable et toi à la logique.

    fs étant déjà fermé, ce n'est pas lui que tu dois ouvrir.
    Tu ouvre un StreamWriter nommé sw, c'est donc lui que tu dois fermer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sw.Close();
    sw.Dispsoe();

  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
    Merci,tout fonctionne parfaitement maintenant

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/12/2005, 20h52
  2. [Info] variable d'une classe static
    Par romdelf dans le forum Langage
    Réponses: 21
    Dernier message: 06/12/2005, 15h08
  3. Réponses: 3
    Dernier message: 02/11/2005, 18h03
  4. [FLASH MX2004] [AS2] Accès aux variables d'une classe
    Par stailer dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 17/07/2005, 12h58
  5. Variable d'une Classe Ancêtre
    Par Génie dans le forum Langage
    Réponses: 3
    Dernier message: 18/09/2002, 19h24

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