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

C# Discussion :

Où placer une variable?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 107
    Par défaut Où placer une variable?
    J'ai 2 classes: Form1 et Data

    Dans Data je range toutes mes données que j'enregistre et ouvre avec Form1 (sérialization).

    Mais voilà: j'ai 1 variable que je souhaite pouvoir être accessible depuis Form1 et Data.

    Le problème est le suivant:

    si j'ouvre un fichier qui a été enregistrer auparavant, la valeur de "variable" (int 10) est automatiquement écrasée et remplacer par celle qui a été sérializée.

    Donc si je modifie la valeur de 10 par une autre, elle est perdue à la réouverture d'un fichier.

    Comment dois-je coder cette variable pour quelle ne se modifie pas à l'ouverture du fichier et quelle soit accessible par Data et Form1?

    Merci pour votre aide.

    Form1.cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Runtime.Serialization.Formatters.Binary;
    using System.IO;
     
    namespace WindowsFormsApplication1
    {
        [Serializable]
        public partial class Form1 : Form
        {
            Data donnees;
     
            public Form1()
            {
                InitializeComponent();
                donnees = new Data();
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                // enregistrer
                BinaryFormatter formatter = new BinaryFormatter();
                FileStream file = null;
                file = new FileStream(@"C:\Users\Public\Pictures\\essai.bin", FileMode.Create, FileAccess.Write);
                formatter.Serialize(file, donnees);
                file.Flush();
                file.Close();
            }
     
            private void button2_Click(object sender, EventArgs e)
            {
                // ouvrir          
                BinaryFormatter formatter = new BinaryFormatter();
                FileStream file = new FileStream(@"C:\Users\Public\Pictures\\essai.bin", FileMode.Open, FileAccess.Read);
                donnees = (Data)formatter.Deserialize(file);
                file.Close();
            }
        }
    }
    Data.cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace WindowsFormsApplication1
    {
        [Serializable]
        public partial class Data
        {
            public int variable=10;
     
            public Data()
            {
            }
        }
    }

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 107
    Par défaut
    J'ai trouvé en plaçant la variables dans une class static:

    Variables.cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace WindowsFormsApplication1
    {
        static class Variables
        {
            public const int variable = 500;
        }
    }
    Form1.cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Runtime.Serialization.Formatters.Binary;
    using System.IO;
     
    namespace WindowsFormsApplication1
    {
       // [Serializable]
        public partial class Form1 : Form
        {
            Data donnees;
     
            public Form1()
            {
                InitializeComponent();
                donnees = new Data();
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                // enregistrer
                BinaryFormatter formatter = new BinaryFormatter();
                FileStream file = null;
                file = new FileStream(@"C:\Users\Public\Pictures\\essai.bin", FileMode.Create, FileAccess.Write);
                formatter.Serialize(file, donnees);
                file.Flush();
                file.Close();
                MessageBox.Show(Variables.variable.ToString());
            }
     
            private void button2_Click(object sender, EventArgs e)
            {
                BinaryFormatter formatter = new BinaryFormatter();
                FileStream file = new FileStream(@"C:\Users\Public\Pictures\\essai.bin", FileMode.Open, FileAccess.Read);
                donnees = (Data)formatter.Deserialize(file);
                file.Close();
                MessageBox.Show(Variables.variable.ToString());
            }
        }
    }
    data.cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
     
    namespace WindowsFormsApplication1
    {
        [Serializable]
        public partial class Data
        {        
            public Data()
            {
                MessageBox.Show(Variables.variable.ToString());
            }
        }
    }

  3. #3
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Si tu souhaites retrouver tes paramètres à l'ouverture il faut que tu créés une classe Settings dans laquelle tu mettras ta variable Datas et les méthodes de chargement et d'enregistrement xml (serialisation).

    Un topic pourrait grandement t'aider sur ces points :

    http://www.developpez.net/forums/d15...e-fichier-xml/

    EDIT : pas assez rapide.....

    A+

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/04/2012, 23h39
  2. PLSQL: placer une variable dans une clause FROM
    Par Tiéry dans le forum PL/SQL
    Réponses: 6
    Dernier message: 02/03/2009, 15h43
  3. Placer des données de SQL serveur dans une variable
    Par Dohmaker dans le forum VB.NET
    Réponses: 11
    Dernier message: 19/02/2008, 22h18
  4. shell script: placer une variable dans le clavier
    Par kaukos dans le forum Linux
    Réponses: 6
    Dernier message: 30/06/2007, 07h42
  5. Réponses: 5
    Dernier message: 17/06/2006, 21h13

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