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

Développement Windows Discussion :

Programmer un Carnet D'Adresse [Débutant]


Sujet :

Développement Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Par défaut Programmer un Carnet D'Adresse
    bonjour, je doit programmer un Carnet d'adresse en WPf. Mais je vais etre franche avec vous je ne sais pas du tout par ou commencer ou quelle structure utiliser, le programme doit permettre de lire le fichier contenant des information, ajouter, modifier, supprimer et rechercher dans le fichier. le programme doit etre en langage c# dans une application WPF. je suis vraiment très débutante en programmation alors ne soyez pas trop dure avec moi toute les idée pour programmer ce CArnet d'adrese sont les bienvenus

    Merci beaucoup pour vos idée

  2. #2
    Membre extrêmement actif
    Avatar de MarieKisSlaJoue
    Homme Profil pro
    Ingénieur Cloud
    Inscrit en
    Mai 2012
    Messages
    1 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Roumanie

    Informations professionnelles :
    Activité : Ingénieur Cloud
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 145
    Billets dans le blog
    20
    Par défaut
    Bonjour, il faut que tu décomposes ton problème en plusieurs sous problèmes.
    Déjà ce que tu veux représenter ce sont des personnes et leur informations. Tu auras donc très probablement une classe Personne pour stocker les informations d'une personne et ainsi gérer facilement une liste de personnes.

    A priori tu ne pourrais avoir qu'une seule classe objet pour le moment. Sauf si tu es à l'aise en objet, dans ce cas l'adresse complète d'une personne pourrait être aussi un objet à part entière.

    Donc pour ta classe personne tu auras les attributs que tu souhaites stocker. Vu que tu devras les afficher et les modifier il ne faut pas que tu oublies de prévoir des fonctions dans cette classe pour le faire.

    Une fois que tu arrives à créer des personnes, afficher ses info et les modifier, tu voudras ensuite les stocker quelque part. Dans un fichier dans ton cas.

    Il va donc te falloir une nouvelle classe dédiée au traitement avec les fichiers. D'abord pouvoir enregistrer les données de tes objets personnes dans le fichier. Et ensuite savoir lire se fichier pour créer des personnes à partir des informations qui s'y trouves.

    Toute cette partie là tu peux déjà la faire en mode console. Pour vérifier que toute tes méthodes marchent.

    Ta dernière étape sera ensuite de créer une fenêtre wpf (très simple avec visual studio) et faire communiquer les info de ta fenêtre avec tes classes métiers.

    Je te conseille de faire les choses petit à petit. Un projet comme ça n'est pas très compliqué à décomposer. Et il te permettra de te mettre en face des différents problèmes les un à la suite des autres.
    Ce post à été écrit par un panda
    Apollo 11 - AGC revue de code
    -- qwerty keybord

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Par défaut
    bonjour, désolé pour le délai de réponse, mon programme avance quand meme bien. voici ce que j'ai de fait:
    mon probleme est au niveau de l'enregistrement de nouveau ajout sur mon fichier. jutilise une listbox, une struc, un arraylist eet un fichier pour la gestion de mes données. lorsque j'ajoute un nouveau contact, il s'ajoute a ma listbox comme il faut mais lorsque je l'écrit dans mon fichier il ne s'écrit pas comme il faut donc mon fichier n'est plus réutilisable la lecteure des nouvelles informations se fait a partir de textbox. si vous avez des idees ne vous genez surtout pas je suis vraiment décourager!!!!

    Merci
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
     
            string ligne;
           public string  Nom, Prenom, Adresse, Telephone;
            int cpt;
          public  ArrayList CarnetContact = new ArrayList();
          string fichier;
     
            struct Contact
            {
               public string  Nom{get;set;}
                public string Prenom{get; set;} 
                public string Adresse{get;set;}
                public string Telephone { get; set; }
            }
     
            //Contact[] contact = new Contact[]
     
            public MainWindow()
            {
                InitializeComponent();
     
            }
     
     
     
            private void MenuItem_Click(object sender, RoutedEventArgs e)
            {
                APROPOSDE FenetreAPROPOSDE = new APROPOSDE();
                FenetreAPROPOSDE.ShowDialog();
            }
     
            private void Bouton_Quitter_Click(object sender, RoutedEventArgs e)
            {
                Close();
            }
     
            private void Bouton_Importer_Carnet_Click(object sender, RoutedEventArgs e)
            {
                OpenFileDialog openDialog = new OpenFileDialog();
                openDialog.ShowDialog();
                StreamReader carnetadresse = new StreamReader(openDialog.FileName);
                fichier = openDialog.FileName;
                CarnetContact.Clear();
                Carnet.Items.Clear();
                Carnet.Items.Add("Nom           Prenom               Adresse               Telephone");
                Carnet.Items.Add("------------------------------------------------------------------");
                ligne = carnetadresse.ReadLine();
     
                while (ligne != null)
                {
               // Nom = ligne.Split(';')[0];
               //// CarnetContact.Add(Nom);
               // Prenom = ligne.Split(';')[1];
               //// CarnetContact.Add(Prenom);
               // Adresse = ligne.Split(';')[2];
               //// CarnetContact.Add(Adresse);
               // Telephone = ligne.Split(';')[3];
               // string chaine = Nom + Prenom + Adresse + Telephone;
               //CarnetContact.Add(ligne.Split(';')[0] + ligne.Split(';')[1] + ligne.Split(';')[2] + ligne.Split(';')[3]);
                    Contact unContact = new Contact(){Nom = ligne.Split(';')[0].ToString(), Prenom = ligne.Split(';')[1], Adresse = ligne.Split(';')[2], Telephone = ligne.Split(';')[3] };
                    CarnetContact.Add(unContact.Nom.PadRight(15)+""+unContact.Prenom.PadRight(20)+""+unContact.Adresse.PadRight(25)+""+unContact.Telephone.PadRight(12));
     
     
                cpt++;
                ligne = carnetadresse.ReadLine();
                };
                foreach (Object o in CarnetContact)
                    Carnet.Items.Add(o);
                carnetadresse.Close();
                Box_Total.Text = cpt.ToString();
                MessageBox.Show("" + CarnetContact.Count);
            }
     
            private void Bouton_Ajouter_Click(object sender, RoutedEventArgs e)
            {
     
     
                Box_Nom.Visibility = System.Windows.Visibility.Visible;
                Box_Prenom.Visibility = System.Windows.Visibility.Visible;
                Box_Adresse.Visibility = System.Windows.Visibility.Visible;
                Box_Telephone.Visibility = System.Windows.Visibility.Visible;
                Titre_Nom.Visibility = System.Windows.Visibility.Visible;
                Titre_Prenom.Visibility = System.Windows.Visibility.Visible;
                Titre_Adresse.Visibility = System.Windows.Visibility.Visible;
                Titre_Telephone.Visibility = System.Windows.Visibility.Visible;
                Bouton_Ok.Visibility = System.Windows.Visibility.Visible;
                Bouton_Annuler.Visibility = System.Windows.Visibility.Visible;
     
            }
     
            private void Bouton_Ok_Click(object sender, RoutedEventArgs e)
            {
                StreamWriter carnetadresse = new StreamWriter(fichier);   // S'enregistre dans mon fichier
                Contact unContact = new Contact() { Nom = Box_Nom.Text, Prenom = Box_Prenom.Text, Adresse = Box_Adresse.Text, Telephone = Box_Telephone.Text };
     
                CarnetContact.Add(unContact.Nom.PadRight(15) + "" + unContact.Prenom.PadRight(20) + "" + unContact.Adresse.PadRight(25) + "" + unContact.Telephone.PadRight(12));      // Ajouter des information a ma arraylist a partir des information entrer dans un textbox
                cpt++;
     
                for (int i = 0; i < CarnetContact.Count; i++)
                carnetadresse.WriteLine(CarnetContact[i]);
                carnetadresse.WriteLine(unContact.Nom + ";" + unContact.Prenom + ";" + unContact.Adresse + ";" + unContact.Telephone);
                carnetadresse.Close();
     
                Carnet.Items.Clear();
                foreach (Object o in CarnetContact)             // Elle s'affiche dans ma listbox
                    Carnet.Items.Add(o);
     
     
                Box_Nom.Visibility = System.Windows.Visibility.Hidden;
                Box_Prenom.Visibility = System.Windows.Visibility.Hidden;
                Box_Adresse.Visibility = System.Windows.Visibility.Hidden;
                Box_Telephone.Visibility = System.Windows.Visibility.Hidden;
                Titre_Nom.Visibility = System.Windows.Visibility.Hidden;
                Titre_Prenom.Visibility = System.Windows.Visibility.Hidden;
                Titre_Adresse.Visibility = System.Windows.Visibility.Hidden;
                Titre_Telephone.Visibility = System.Windows.Visibility.Hidden;
                Bouton_Ok.Visibility = System.Windows.Visibility.Hidden;
                Bouton_Annuler.Visibility = System.Windows.Visibility.Hidden;
                Box_Total.Text = cpt.ToString();
     
            }

  4. #4
    Membre extrêmement actif
    Avatar de MarieKisSlaJoue
    Homme Profil pro
    Ingénieur Cloud
    Inscrit en
    Mai 2012
    Messages
    1 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Roumanie

    Informations professionnelles :
    Activité : Ingénieur Cloud
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 145
    Billets dans le blog
    20
    Par défaut
    Bonjour,

    Il faut que tu fasse attention à la lisibilité de te ton code. J'ai eu du mal à voir ce que tu voulais faire à cette endroit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (int i = 0; i < CarnetContact.Count; i++)
                carnetadresse.WriteLine(CarnetContact[i]);
                carnetadresse.WriteLine(unContact.Nom + ";" + unContact.Prenom + ";" + unContact.Adresse + ";" + unContact.Telephone);
                carnetadresse.Close();
    Visiblement quand tu sauvegarde tu veux écrire tout le répertoire existant dans ton programme et ajouter à la fin la personne qui vient d'être créer c'est ça ?
    Si oui tu n’a pas besoin de récrire tous le répertoire à chaque fois. Seul la personne ajouté doit être enregistrer.
    Sachant que la personne créer à été ajouté juste au dessus à ton répertorie tu la récris deux fois en fait.
    Ton fichier qui est écrit n'importe comment viens probablement de là d'ailleurs.

    Autant cette ligne là doit bien passer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    carnetadresse.WriteLine(unContact.Nom + ";" + unContact.Prenom + ";" + unContact.Adresse + ";" + unContact.Telephone);
    Autant ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for (int i = 0; i < CarnetContact.Count; i++)
                carnetadresse.WriteLine(CarnetContact[i]);
    sans avoir fait de C#depuis longtemps je ne vois pas le résultat que tu peux espérer en écrivant directement une structure dans un fichier. Je suis quasiment sur que pour faire ça tu devrai avant le sérialiser.

    Ton principale soucie viens je pense de ton découpage de code. Tu n’a fait aucune fonction et à coder tout directement dans tes boutons. Tu vas avoir énormément de mal à t'y retrouver comme ça. C'est bien pour ça que je t'avais conseiller de laisser l'interface graphique pour la fin. Pour te concentrer sur le fonctionnement de tes fonctions la tu aura pu faire les chose petit à petit.
    Ce post à été écrit par un panda
    Apollo 11 - AGC revue de code
    -- qwerty keybord

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/02/2015, 20h28
  2. Réponses: 2
    Dernier message: 19/08/2007, 11h58
  3. Carnet d'adresses d'Outlook
    Par vciofolo dans le forum Access
    Réponses: 2
    Dernier message: 14/10/2005, 11h34
  4. Récupérer le carnet d'adresses de Outlook
    Par pc75 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 01/02/2005, 12h30

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