begin process at 2012 02 11 17:56:02
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > MINI RÉPERTOIRE TÉLÉPHONIQUE

MINI RÉPERTOIRE TÉLÉPHONIQUE


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Source .NET ( DotNet ) Classé sous :repertoire, telephonique Niveau :Débutant Date de création :27/02/2005 Date de mise à jour :10/03/2005 00:42:02 Vu / téléchargé :18 228 / 487

Auteur : Kirdream

Ecrire un message privé
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
C'est un répertoire téléphonique en mode console. Il est programmé orienté objet.
il peut enregistrer le nom, prénom, numéro téléphone de domicile, numéro téléphone portable, numéro téléphone du travail, adresse de la personne, code postal, ville et 3 adresses mail. La sauvegarde se fait avec un fichier .txt qui se trouve dans le même répertoire que le fichier .exe (\bin\Debug).

Source

  • using System;
  • using System.IO; //Pour utiliser les flux
  • using System.Collections; //Pour utiliser l'ArrayList
  • using nsClearConsole; //Pour effacer la console
  • namespace repert
  • {
  • /// <summary>
  • /// Description résumée de Class1.
  • /// </summary>
  • // ----- - CLASSE personne - ------
  • class personne
  • {
  • private string nom;
  • private string prenom;
  • private string tel_home; //telephone domicile
  • private string tel_port; //telephone portable
  • private string tel_bur; //telephone du bureau
  • private string adr_n_rue; //numero de rue
  • private string adr_rue; //nom de la rue
  • private string adr_cp; //code postal
  • private string adr_ville; //ville
  • private string email1; //adresse mail 1
  • private string email2; //adresse mail 2
  • private string email3; //adresse mail 3
  • //---------------------- Constructeur (sans parametre)-------------------
  • public personne ()
  • {
  • nom="";
  • prenom="";
  • tel_home="";
  • tel_port="";
  • tel_bur="";
  • adr_n_rue="";
  • adr_rue="";
  • adr_cp="";
  • adr_ville="";
  • email1="";
  • email2="";
  • email3="";
  • }
  • //---------------------- Constructeur (avec ts parametres)---------------
  • public personne(string p_nom,string p_prenom,string p_teldomicile,
  • string p_telportabl,string p_telbureau,string p_adnumrue,
  • string p_adrue,string p_adcodepostal,string p_adville,
  • string p_email1,string p_email2,string p_email3)
  • {
  • nom=p_nom;
  • prenom=p_prenom;
  • tel_home=p_teldomicile;
  • tel_port=p_telportabl;
  • tel_bur=p_telbureau;
  • adr_n_rue=p_adnumrue;
  • adr_rue=p_adrue;
  • adr_cp=p_adcodepostal;
  • adr_ville=p_adville;
  • email1=p_email1;
  • email2=p_email2;
  • email3=p_email3;
  • }
  • //---------------------- Get et Set (nom) -------------------------------
  • public string getnom()
  • {
  • return (nom);
  • }
  • public void setnom(string n)
  • {
  • nom=n;
  • }
  • //---------------------- Get et Set (prenom) ----------------------------
  • public string getprenom()
  • {
  • return (prenom);
  • }
  • public void setprenom(string p)
  • {
  • prenom=p;
  • }
  • //---------------------- Get et Set (telephone home) --------------------
  • public string gettel_h()
  • {
  • return (tel_home);
  • }
  • public void settel_h(string t)
  • {
  • tel_home=t;
  • }
  • //---------------------- Get et Set (telephone port) --------------------
  • public string gettel_p()
  • {
  • return (tel_port);
  • }
  • public void settel_p(string tp)
  • {
  • tel_port=tp;
  • }
  • //---------------------- Get et Set (telephone bureau) ------------------
  • public string gettel_b()
  • {
  • return (tel_bur);
  • }
  • public void settel_b(string tb)
  • {
  • tel_bur=tb;
  • }
  • //---------------------- Get et Set (numero de rue) ---------------------
  • public string getnrue()
  • {
  • return (adr_n_rue);
  • }
  • public void setnrue(string anr)
  • {
  • adr_n_rue=anr;
  • }
  • //---------------------- Get et Set (nom de la rue) ---------------------
  • public string getrue()
  • {
  • return (adr_rue);
  • }
  • public void setrue(string ar)
  • {
  • adr_rue=ar;
  • }
  • //---------------------- Get et Set (code postal) -----------------------
  • public string getcp()
  • {
  • return (adr_cp);
  • }
  • public void setcp(string cp)
  • {
  • adr_cp=cp;
  • }
  • //---------------------- Get et Set (nom de la ville) -------------------
  • public string getville()
  • {
  • return (adr_ville);
  • }
  • public void setville(string ville)
  • {
  • adr_ville=ville;
  • }
  • //---------------------- Get et Set (premier mail) ----------------------
  • public string getemail1()
  • {
  • return (email1);
  • }
  • public void setemail1(string e1)
  • {
  • email1=e1;
  • }
  • //---------------------- Get et Set (deuxième mail) ---------------------
  • public string getemail2()
  • {
  • return (email2);
  • }
  • public void setemail2(string e2)
  • {
  • email2=e2;
  • }
  • //---------------------- Get et Set (troisième mail) --------------------
  • public string getemail3()
  • {
  • return (email3);
  • }
  • public void setemail3(string e3)
  • {
  • email3=e3;
  • }
  • //---------------------- Override de la Méthode ToString() --------------------
  • // ----- Chaque chaine sont séparée par une virgule ----
  • public override string ToString()
  • {
  • return(this.getnom()+","+this.getprenom()+","+this.gettel_h()+","+this.gettel_p()+","+this.gettel_b()+","+this.getnrue()+","+this.getrue()+","+this.getcp()+","+this.getville()+","+this.getemail1()+","+this.getemail2()+","+this.getemail3()+",");
  • }
  • }
  • // ------- - CLASSE repertoire - ------
  • class repertoire : ArrayList
  • {
  • //private personne[] rep=new personne[500];
  • private int nbp=0;
  • // destructeur
  • ~repertoire()
  • {
  • // Perform some cleanup operations here.
  • //this.Initialize();
  • }
  • //------------------- Constructeur (sans paramètre) ---------------------
  • public repertoire()
  • {
  • string n,p,th,tb,tp,nr,r,cp,v,e1,e2,e3;
  • // Table de chaîne qui contiendra les chaînes d'une ligne
  • string[] tabn = new string[12];
  • // Ouverture du Flux d'écriture pour tester si le fichier existe
  • StreamWriter sw = new StreamWriter("repertoire.txt",true, System.Text.Encoding.Default);
  • // On ferme le flux d'ecriture
  • sw.Close();
  • // Ouverture du Flux de lecture du fichier texte
  • StreamReader sr=new StreamReader("repertoire.txt");
  • //Lecture du fichier texte
  • try
  • {
  • n=sr.ReadLine();
  • while (n!=null)
  • {
  • // affecte dans chaque case, chaque mot séparé par les virgules
  • tabn=n.Split(',');
  • // Affectation dans les variables hôtes
  • n=tabn[0];
  • p=tabn[1];
  • th=tabn[2];
  • tp=tabn[3];
  • tb=tabn[4];
  • nr=tabn[5];
  • r=tabn[6];
  • cp=tabn[7];
  • v=tabn[8];
  • e1=tabn[9];
  • e2=tabn[10];
  • e3=tabn[11];
  • // Stocke dans une nouvelle classe personne
  • personne Pe=new personne(n,p,th,tp,tb,nr,r,cp,v,e1,e2,e3);
  • ajouter(Pe);
  • // Lire la ligne suivante
  • n=sr.ReadLine();
  • }
  • sr.Close();
  • }
  • catch(Exception ex)
  • {
  • Console.WriteLine("{0} \nLe fichier est peut-être endommagé ou inexistant, Veuillez le changer.",ex);
  • }
  • }
  • //------------------- Procédure ajouter ---------------------------------
  • public void ajouter(personne p)
  • {
  • /*int pos;
  • pos=0;
  • Tri Croissant
  • while (pos>1 && p.getnom() < rep[pos-1].getnom())
  • {
  • rep[pos]=rep[pos-1];
  • pos++;
  • }*/
  • this.Add(p);
  • }
  • //------------------- Procédure modifier -------------------
  • public void modifier(personne p)
  • {
  • // Modifier les coordonnées d'une personne;
  • }
  • //------------------- Procédure afficherrep (sans parametre)-------------
  • public void afficherrep()
  • {
  • string m_rien="inconnu";
  • string adr;
  • Console.WriteLine("\nContenu du répertoire :\n");
  • foreach (personne Pe in rep)
  • {
  • if (Pe != null)
  • {
  • Console.WriteLine("Nom:{0} Prénom:{1}",Pe.getnom(),Pe.getprenom());
  • Console.WriteLine("TélDomicile:{0} TélPortable:{1} TélDuBureau: {2}",((Pe.gettel_h()=="")?m_rien:Pe.gettel_h()),((Pe.gettel_p()=="")?m_rien:Pe.gettel_p()),((Pe.gettel_b()=="")?m_rien:Pe.gettel_b()));
  • if (Pe.getnrue() != "" || Pe.getrue() != "")
  • {
  • adr=Pe.getcp()+", "+Pe.getrue();
  • }
  • else
  • {
  • adr="inconnu";
  • }
  • Console.WriteLine("Adresse:{0}",adr);
  • Console.WriteLine("CodePostal:{0} Ville:{1}",((Pe.getcp()=="")?m_rien:Pe.getcp()),((Pe.getville()=="")?m_rien:Pe.getville()));
  • Console.WriteLine("AdressesMail:\n-{0}\n-{1}\n-{2}",((Pe.getemail1()=="")?m_rien:Pe.getemail1()),((Pe.getemail2()=="")?m_rien:Pe.getemail2()),((Pe.getemail3()=="")?m_rien:Pe.getemail3()));
  • Console.ReadLine() ; //Pause
  • }else{
  • break;
  • }
  • }
  • }
  • //-------------------- Fonction afficherrep (avec parametre) -----------
  • public void afficherrep(personne Pe)
  • {
  • string m_rien="inconnu";
  • string adr;
  • Console.WriteLine("\nNom:{0} Prénom:{1}",Pe.getnom(),Pe.getprenom());
  • Console.WriteLine("TélDomicile:{0}",((Pe.gettel_h()=="")?m_rien:Pe.gettel_h()));
  • Console.WriteLine("TélPortable:{1}",((Pe.gettel_p()=="")?m_rien:Pe.gettel_p()));
  • Console.WriteLine("TélDuBureau:{2}",((Pe.gettel_b()=="")?m_rien:Pe.gettel_b()));
  • if (Pe.getnrue() != "" || Pe.getrue() != "")
  • {
  • adr=Pe.getcp()+", "+Pe.getrue();
  • }
  • else
  • {
  • adr="inconnu";
  • }
  • Console.WriteLine("Adresse:{0}",adr);
  • Console.Write("CodePostal:{0}",((Pe.getcp()=="")?m_rien:Pe.getcp()));
  • Console.WriteLine("Ville:{1}",((Pe.getville()=="")?m_rien:Pe.getville()));
  • Console.WriteLine("AdressesMail:");
  • Console.WriteLine("-{0}",((Pe.getemail1()=="")?m_rien:Pe.getemail1()));
  • Console.WriteLine("-{1}",((Pe.getemail2()=="")?m_rien:Pe.getemail2()));
  • Console.WriteLine("-{2}",((Pe.getemail3()=="")?m_rien:Pe.getemail3()));
  • Console.ReadLine() ; //Pause
  • }
  • //------------------- Fonction rechercherpers ---------------------------
  • public personne rechercherpers(string n)
  • {
  • personne Pe = new personne();
  • foreach (personne p in this)
  • {
  • if (p.getnom()==n)
  • {
  • Pe=p;
  • }
  • }
  • if (Pe.getnom()==n)
  • {
  • return(Pe);
  • }
  • else
  • {
  • return (null);
  • }
  • }
  • //------------------- Fonction rechercherpers (nom + prenom) ---------------------------
  • public personne rechercherpers(string n,string pm)
  • {
  • personne[] tbp = new personne[0];
  • personne Pe = new personne();
  • int i=0;
  • nbp=0;
  • foreach (personne p in this)
  • {
  • if (p.getnom()==n)
  • {
  • tbp[i] = p;
  • i++;
  • Console.WriteLine("i={0}",i);
  • }
  • else
  • {
  • nbp++;
  • }
  • }
  • Console.WriteLine("nbp={0}",nbp);
  • if (Pe.getnom()==n)
  • {
  • while (i<tbp.Length)
  • {
  • if (tbp[i].getprenom() == pm)
  • {
  • Pe = tbp[i];
  • }
  • else
  • {
  • i++;
  • }
  • }
  • return(Pe);
  • }
  • else
  • {
  • return (null);
  • }
  • }
  • //------------------- Fonction rechbytel --------------------------------
  • public void rechbytel(string t)
  • {
  • int j=0;
  • foreach (personne p in this)
  • {
  • if (p.gettel_h()==t)
  • {
  • Console.WriteLine("Personne trouvé :{0} {1}",p.getnom(),p.getprenom());
  • j++;
  • }
  • }
  • if (j <= 1)
  • {
  • Console.WriteLine("Nombre de personne{0} trouvée{0} : {1}",((j==1)?"":"s"),j);
  • }
  • else
  • {
  • Console.WriteLine("Aucun résultat.");
  • }
  • Console.ReadLine(); //Pause
  • }
  • //------------------- Fonction rechbynom --------------------------------
  • public void rechbynom(string nm)
  • {
  • int j=0;
  • foreach (personne p in this)
  • {
  • if (p.getnom() == nm)
  • {
  • Console.WriteLine("Personne trouvé :{0} {1}",p.getnom(),p.getprenom());
  • j++;
  • }
  • }
  • if (j <= 1)
  • {
  • Console.WriteLine("Nombre de personne{0} trouvée{0} : {1}",((j==1)?"":"s"),j);
  • }
  • else
  • {
  • Console.WriteLine("Aucun résultat.");
  • }
  • Console.ReadLine(); //Pause
  • }
  • //------------------- Fonction rechbyprenom --------------------------------
  • public void rechbyprenom(string pm)
  • {
  • int j=0;
  • foreach (personne p in this)
  • {
  • if (p.getprenom() == pm)
  • {
  • Console.WriteLine("Personne trouvé :{0} {1}",p.getnom(),p.getprenom());
  • j++;
  • }
  • }
  • if (j <= 1)
  • {
  • Console.WriteLine("Nombre de personne{0} trouvée{0} : {1}",((j==1)?"":"s"),j);
  • }
  • else
  • {
  • Console.WriteLine("Aucun résultat.");
  • }
  • Console.ReadLine(); //Pause
  • }
  • //------------------- Fonction rechbyville --------------------------------
  • public void rechbyville(string vl)
  • {
  • int j=0;
  • foreach (personne p in this)
  • {
  • if (p.getville() == vl)
  • {
  • Console.WriteLine("Personne trouvé :{0} {1}",p.getnom(),p.getprenom());
  • j++;
  • }
  • }
  • if (j <= 1)
  • {
  • Console.WriteLine("Nombre de personne{0} trouvée{0} : {1}",((j==1)?"":"s"),j);
  • }
  • else
  • {
  • Console.WriteLine("Aucun résultat.");
  • }
  • Console.ReadLine(); //Pause
  • }
  • //------------------- Procédure sauvegarder -----------------------------
  • public void sauvegarder()
  • {
  • // Flux qui va écrire dans le fichier
  • // true permet d'ajouter au lieu de remplacer le fichier
  • StreamWriter sw = new StreamWriter("repertoire.txt",false,System.Text.Encoding.UTF8);
  • foreach (personne Pe in this)
  • {
  • if (Pe == null)
  • {
  • continue;
  • }
  • sw.WriteLine(Pe.ToString());
  • }
  • //sw.WriteLine();
  • // On ferme le flux d'ecriture
  • sw.Close();
  • }
  • }
  • class Class1
  • {
  • /// <summary>
  • /// Point d'entrée principal de l'application.
  • /// </summary>
  • [STAThread]
  • static void Main(string[] args)
  • {
  • //
  • // TODO : ajoutez ici le code pour démarrer l'application
  • //
  • ClearConsole ClearMyConsole = new ClearConsole();
  • repertoire rpt= new repertoire();
  • personne per=new personne();
  • string nomp,prenomp,telhp,telpp,telbp;
  • string numrp,ruep,cpostp,villp,email1p;
  • string email2p,email3p;
  • string mdfnm,mdfpm;
  • string tmp="";
  • int choix;
  • int choix1=0;
  • string quit;
  • do
  • {
  • Console.WriteLine("------------------- MENU -------------------\n");
  • Console.WriteLine("1) Afficher tout le répertoire,");
  • Console.WriteLine("2) Ajouter une nouvelle personne dans le répertoire,");
  • Console.WriteLine("3) Afficher les coordonnées d'une personne,");
  • Console.WriteLine("4) Modifier les coordonnées d'une personne,*");
  • Console.WriteLine("5) Supprimer une personne,*");
  • Console.WriteLine("6) Rechercher par numéro de téléphone,");
  • Console.WriteLine("7) Rechercher par nom,");
  • Console.WriteLine("8) Rechercher par prénom,");
  • Console.WriteLine("9) Rechercher par ville,");
  • Console.WriteLine("10) Afficher les personnes commencant par une lettre du nom,*");
  • Console.WriteLine("11) Afficher le nombre de personnes enregistrées,");
  • Console.WriteLine("12) Actualiser,");
  • Console.WriteLine("13) Réinitialiser la console");
  • Console.WriteLine("14) Quitter");
  • Console.Write("Votre choix : ");
  • try
  • {
  • choix=Convert.ToInt32(Console.ReadLine());
  • }
  • catch(System.FormatException)
  • {
  • choix=0;
  • }
  • switch (choix)
  • {
  • case 1 : rpt.afficherrep();
  • break;
  • case 2 : Console.WriteLine("Ajouter une personne dans votre répertoire");
  • // Saisie des coordonnées de la personne qui sera ajouter dans le répertoire
  • Console.WriteLine("Entrer le nom :");
  • nomp=Console.ReadLine();
  • Console.WriteLine("Entrer le prénom :");
  • prenomp=Console.ReadLine();
  • Console.WriteLine("Entrer le n° téléphonique du domicile :");
  • telhp=Console.ReadLine();
  • Console.WriteLine("Entrer le n° du téléphone portable :");
  • telpp=Console.ReadLine();
  • Console.WriteLine("Entrer le n° téléphonique du bureau :");
  • telbp=Console.ReadLine();
  • Console.WriteLine("Entrer le n° de la rue :");
  • numrp=Console.ReadLine();
  • Console.WriteLine("Entrer le nom de la rue :");
  • ruep=Console.ReadLine();
  • Console.WriteLine("Entrer le code postal :");
  • cpostp=Console.ReadLine();
  • Console.WriteLine("Entrer le nom de la ville :");
  • villp=Console.ReadLine();
  • Console.WriteLine("Entrer le 1er adresse mail :");
  • email1p=Console.ReadLine();
  • Console.WriteLine("Entrer le 2ème adresse mail :");
  • email2p=Console.ReadLine();
  • Console.WriteLine("Entrer le 3ème adresse mail :");
  • email3p=Console.ReadLine();
  • // Création d'une nouvelle classse personne
  • per=new personne(nomp,prenomp,telhp,telpp,telbp,numrp,ruep,cpostp,villp,email1p,email2p,email3p);
  • // Ajout la nouvelle classe personne dans le répertoire
  • rpt.ajouter(per);
  • // Affichage du résultat
  • rpt.afficherrep(per);
  • break;
  • case 3 : Console.WriteLine("Entrer le nom de la personne recherchée");
  • nomp=Console.ReadLine();
  • if (rpt.rechercherpers(nomp) != null)
  • {
  • per=rpt.rechercherpers(nomp);
  • rpt.afficherrep(per);
  • }
  • else
  • {
  • Console.WriteLine("La personne que vous recherchez n'existe pas");
  • }
  • break;
  • case 4 : // modifie les coordonnées d'une personne
  • Console.WriteLine("Quel personne voulez-vous modifier?");
  • Console.WriteLine("1. En recherchant dans la liste,");
  • Console.WriteLine("2. En donnant le nom et prénom de la personne");
  • Console.Write("Indiquez votre choix: ");
  • try
  • {
  • choix1=Convert.ToInt32(Console.WriteLine());
  • }
  • catch(System.FormatException)
  • {
  • Console.WriteLine("Vous avez mal indiqué votre choix.");
  • choix1=0;
  • }
  • switch(choix1)
  • {
  • case 1 : //ezkg,zeoig,
  • break;
  • case 2 : // Modification en indiquant nom & prénom de la personne
  • Console.Write("Nom : ");
  • mdfnm=Console.ReadLine();
  • Console.Write("Prénom : ");
  • mdfpm=Console.ReadLine();
  • per=rpt.rechercherpers(mdfnm,mdfpm);
  • break;
  • default : break;
  • }
  • if ( choix1 == 1 || choix1 == 2)
  • {
  • rpt.modifier(per);
  • }
  • break;
  • case 5 : // supprime une personne
  • break;
  • case 6 : // recherche par numéro de téléphone
  • Console.WriteLine("Entrer le numéro de téléphone de domicile recherché :");
  • telhp=Console.ReadLine();
  • rpt.rechbytel(telhp);
  • break;
  • case 7 : // recherche par nom
  • Console.WriteLine("Entrer le nom recherché :");
  • nomp=Console.ReadLine();
  • rpt.rechbynom(nomp);
  • break;
  • case 8 : // recherche par prénom
  • Console.WriteLine("Entrer le prénom recherché :");
  • prenomp=Console.ReadLine();
  • rpt.rechbyprenom(prenomp);
  • break;
  • case 9 : // recherche par ville
  • Console.WriteLine("Entrer la ville recherchée :");
  • villp=Console.ReadLine();
  • rpt.rechbyville(villp);
  • break;
  • case 10 : // affiche les personnes par lettre du nom
  • break;
  • case 11 : // affiche le nombre de personne dans le répertoire.
  • if (rpt.Count != 0)
  • {
  • Console.WriteLine("Il y a actuellement {0} personne{1} dans le répertoire.",rpt.Count,((rpt.Count != 1)?"s":""));
  • }
  • else
  • {
  • Console.WriteLine("Le répertoire est vide.");
  • }
  • break;
  • case 12 : //Finalize(); //destructeur ou constructeur pr actualiser
  • break;
  • case 13 : ClearMyConsole.Clear(); // Clear the screen
  • break;
  • case 14 : Console.Write("Voulez-vous réellement quitter l'application (o/n)? ");
  • quit=Console.ReadLine();
  • if (quit == "o" || quit == "O")
  • {
  • rpt.sauvegarder();
  • }
  • else
  • {
  • choix=0;
  • }
  • break;
  • default : break;
  • }
  • }while(choix != 14);
  • }
  • }
  • }
using System;
using System.IO;			//Pour utiliser les flux
using System.Collections;	//Pour utiliser l'ArrayList
using nsClearConsole;		//Pour effacer la console

namespace repert
{
	/// <summary>
	/// Description résumée de Class1.
	/// </summary>
	
	// ----- - CLASSE personne - ------	
	class personne
	{
		private string nom;
		private string prenom;
		private string tel_home;	//telephone domicile
		private string tel_port;	//telephone portable
		private string tel_bur;		//telephone du bureau
		private string adr_n_rue;	//numero de rue
		private string adr_rue;		//nom de la rue
		private string adr_cp;		//code postal
		private string adr_ville;	//ville
		private string email1;		//adresse mail 1
		private string email2;		//adresse mail 2
		private string email3;		//adresse mail 3

		//---------------------- Constructeur (sans parametre)-------------------
		public personne ()
		{
			nom="";
			prenom="";
			tel_home="";
			tel_port="";
			tel_bur="";
			adr_n_rue="";
			adr_rue="";
			adr_cp="";
			adr_ville="";
			email1="";
			email2="";
			email3="";
		}
		//---------------------- Constructeur (avec ts parametres)---------------
		public personne(string p_nom,string p_prenom,string p_teldomicile,
		string p_telportabl,string p_telbureau,string p_adnumrue,
		string p_adrue,string p_adcodepostal,string p_adville,
		string p_email1,string p_email2,string p_email3)
		{
			nom=p_nom;
			prenom=p_prenom;
			tel_home=p_teldomicile;
			tel_port=p_telportabl;
			tel_bur=p_telbureau;
			adr_n_rue=p_adnumrue;
			adr_rue=p_adrue;
			adr_cp=p_adcodepostal;
			adr_ville=p_adville;
			email1=p_email1;
			email2=p_email2;
			email3=p_email3;
		}
		//---------------------- Get et Set (nom) -------------------------------
		public string getnom()
		{
			return (nom);
		}
		public void setnom(string n)
		{
			nom=n;
		}
		//---------------------- Get et Set (prenom) ----------------------------
		public string getprenom()
		{
			return (prenom);
		}
		public void setprenom(string p)
		{
			prenom=p;
		}
		
		//---------------------- Get et Set (telephone home) --------------------
		public string gettel_h()
		{
			return (tel_home);
		}
		
		public void settel_h(string t)
		{
			tel_home=t;
		}
		
		//---------------------- Get et Set (telephone port) --------------------
		public string gettel_p()
		{
			return (tel_port);
		}
		public void settel_p(string tp)
		{
			tel_port=tp;
		}
		//---------------------- Get et Set (telephone bureau) ------------------
		public string gettel_b()
		{
			return (tel_bur);
		}
		public void settel_b(string tb)
		{
			tel_bur=tb;
		}
		//---------------------- Get et Set (numero de rue) ---------------------
		public string getnrue()
		{
			return (adr_n_rue);
		}
		public void setnrue(string anr)
		{
			adr_n_rue=anr;
		}
		//---------------------- Get et Set (nom de la rue) ---------------------
		public string getrue()
		{
			return (adr_rue);
		}
		public void setrue(string ar)
		{
			adr_rue=ar;
		}
		//---------------------- Get et Set (code postal) -----------------------
		public string getcp()
		{
			return (adr_cp);
		}
		public void setcp(string cp)
		{
			adr_cp=cp;
		}
		//---------------------- Get et Set (nom de la ville) -------------------
		public string getville()
		{
			return (adr_ville);
		}
		public void setville(string ville)
		{
			adr_ville=ville;
		}
		//---------------------- Get et Set (premier mail) ----------------------
		public string getemail1()
		{
			return (email1);
		}
		public void setemail1(string e1)
		{
			email1=e1;
		}
		//---------------------- Get et Set (deuxième mail) ---------------------
		public string getemail2()
		{
			return (email2);
		}
		public void setemail2(string e2)
		{
			email2=e2;
		}
		//---------------------- Get et Set (troisième mail) --------------------
		public string getemail3()
		{
			return (email3);
		}
		public void setemail3(string e3)
		{
			email3=e3;
		}
		//---------------------- Override de la Méthode ToString() --------------------
		// ----- Chaque chaine sont séparée par une virgule ---- 
		public override string ToString()
		{
			return(this.getnom()+","+this.getprenom()+","+this.gettel_h()+","+this.gettel_p()+","+this.gettel_b()+","+this.getnrue()+","+this.getrue()+","+this.getcp()+","+this.getville()+","+this.getemail1()+","+this.getemail2()+","+this.getemail3()+",");
		}
	}
	
	// ------- - CLASSE repertoire - ------	
	class repertoire : ArrayList
	{
		//private personne[] rep=new personne[500];
		private int nbp=0;
		
		// destructeur
		~repertoire()
		{
			// Perform some cleanup operations here.
			//this.Initialize();
		}

		//------------------- Constructeur (sans paramètre) ---------------------
		public repertoire()
		{
			string n,p,th,tb,tp,nr,r,cp,v,e1,e2,e3;
			// Table de chaîne qui contiendra les chaînes d'une ligne
			string[] tabn = new string[12];
			
			// Ouverture du Flux d'écriture pour tester si le fichier existe
			StreamWriter sw = new StreamWriter("repertoire.txt",true, System.Text.Encoding.Default);
			// On ferme le flux d'ecriture
			sw.Close();
			
			// Ouverture du Flux de lecture du fichier texte
			StreamReader sr=new StreamReader("repertoire.txt");
			
			//Lecture du fichier texte
			try
			{
				n=sr.ReadLine();
				while (n!=null)
				{
					// affecte dans chaque case, chaque mot séparé par les virgules
					tabn=n.Split(',');
					// Affectation dans les variables hôtes
					n=tabn[0];
					p=tabn[1];
					th=tabn[2];
					tp=tabn[3];
					tb=tabn[4];
					nr=tabn[5];
					r=tabn[6];
					cp=tabn[7];
					v=tabn[8];
					e1=tabn[9];
					e2=tabn[10];
					e3=tabn[11];
					// Stocke dans une nouvelle classe personne
					personne Pe=new personne(n,p,th,tp,tb,nr,r,cp,v,e1,e2,e3);
					ajouter(Pe);
					// Lire la ligne suivante
					n=sr.ReadLine();
				}
			
				sr.Close();
			}
			catch(Exception ex)
			{
				Console.WriteLine("{0} \nLe fichier est peut-être endommagé ou inexistant, Veuillez le changer.",ex);
			}
		}

		//------------------- Procédure ajouter ---------------------------------
		public void ajouter(personne p)
		{
			/*int pos;
			pos=0;
			Tri Croissant
			while (pos>1 && p.getnom() < rep[pos-1].getnom())
			{
				rep[pos]=rep[pos-1];
				pos++;
			}*/
			this.Add(p);
		}

		//------------------- Procédure modifier ------------------- 
		public void modifier(personne p)
		{
			// Modifier les coordonnées d'une personne;
		}

		//------------------- Procédure afficherrep (sans parametre)-------------
		public void afficherrep()
		{
			string m_rien="inconnu";
			string adr;
			Console.WriteLine("\nContenu du répertoire :\n");
			foreach (personne Pe in rep)
			{
				if (Pe != null)
				{
					Console.WriteLine("Nom:{0} Prénom:{1}",Pe.getnom(),Pe.getprenom());
					Console.WriteLine("TélDomicile:{0} TélPortable:{1} TélDuBureau: {2}",((Pe.gettel_h()=="")?m_rien:Pe.gettel_h()),((Pe.gettel_p()=="")?m_rien:Pe.gettel_p()),((Pe.gettel_b()=="")?m_rien:Pe.gettel_b()));
					if (Pe.getnrue() != "" || Pe.getrue() != "")
					{
						adr=Pe.getcp()+", "+Pe.getrue();
					}
					else
					{
						adr="inconnu";
					}
					Console.WriteLine("Adresse:{0}",adr);
					Console.WriteLine("CodePostal:{0} Ville:{1}",((Pe.getcp()=="")?m_rien:Pe.getcp()),((Pe.getville()=="")?m_rien:Pe.getville()));
					Console.WriteLine("AdressesMail:\n-{0}\n-{1}\n-{2}",((Pe.getemail1()=="")?m_rien:Pe.getemail1()),((Pe.getemail2()=="")?m_rien:Pe.getemail2()),((Pe.getemail3()=="")?m_rien:Pe.getemail3()));
					Console.ReadLine() ;	//Pause
				}else{
					break;
				}
			}
		}

		//-------------------- Fonction afficherrep (avec parametre) -----------
		public void afficherrep(personne Pe)
		{
			string m_rien="inconnu";
			string adr;
			
			Console.WriteLine("\nNom:{0} Prénom:{1}",Pe.getnom(),Pe.getprenom());
			Console.WriteLine("TélDomicile:{0}",((Pe.gettel_h()=="")?m_rien:Pe.gettel_h()));
			Console.WriteLine("TélPortable:{1}",((Pe.gettel_p()=="")?m_rien:Pe.gettel_p()));
			Console.WriteLine("TélDuBureau:{2}",((Pe.gettel_b()=="")?m_rien:Pe.gettel_b()));
			if (Pe.getnrue() != "" || Pe.getrue() != "")
			{
				adr=Pe.getcp()+", "+Pe.getrue();
			}
			else
			{
				adr="inconnu";
			}
			Console.WriteLine("Adresse:{0}",adr);
			Console.Write("CodePostal:{0}",((Pe.getcp()=="")?m_rien:Pe.getcp()));
			Console.WriteLine("Ville:{1}",((Pe.getville()=="")?m_rien:Pe.getville()));
			Console.WriteLine("AdressesMail:");
			Console.WriteLine("-{0}",((Pe.getemail1()=="")?m_rien:Pe.getemail1()));
			Console.WriteLine("-{1}",((Pe.getemail2()=="")?m_rien:Pe.getemail2()));
			Console.WriteLine("-{2}",((Pe.getemail3()=="")?m_rien:Pe.getemail3()));
			Console.ReadLine() ;	//Pause
		}

		//------------------- Fonction rechercherpers ---------------------------
		public personne rechercherpers(string n)
		{
			personne Pe = new personne();

			foreach (personne p in this)
			{
				if (p.getnom()==n)
				{
					Pe=p;
				}
			}
			if (Pe.getnom()==n)
			{
				return(Pe);
			}
			else
			{
				return (null);
			}
		}
		
		//------------------- Fonction rechercherpers (nom + prenom) ---------------------------
		public personne rechercherpers(string n,string pm)
		{
			personne[] tbp = new personne[0];
			personne Pe = new personne();
			int i=0;

			nbp=0;
			foreach (personne p in this)
			{
				if (p.getnom()==n)
				{
					tbp[i] = p;
					i++;
					Console.WriteLine("i={0}",i);
				}
				else
				{
					nbp++;
				}
			}
			Console.WriteLine("nbp={0}",nbp);
			if (Pe.getnom()==n)
			{
				while (i<tbp.Length)
				{
					if (tbp[i].getprenom() == pm)
					{
						Pe = tbp[i];
					}
					else
					{
						i++;
					}
				}
				return(Pe);
			}
			else
			{
				return (null);
			}
		}

		//------------------- Fonction rechbytel --------------------------------
		public void rechbytel(string t)
		{
			int j=0;
			
			foreach (personne p in this)
			{
				if (p.gettel_h()==t)
				{
					Console.WriteLine("Personne trouvé :{0} {1}",p.getnom(),p.getprenom());
					j++;
				}
			}
			if (j <= 1)
			{
				Console.WriteLine("Nombre de personne{0} trouvée{0} : {1}",((j==1)?"":"s"),j);
			}
			else
			{
				Console.WriteLine("Aucun résultat.");
			}
			Console.ReadLine();	//Pause
		}
		
		//------------------- Fonction rechbynom --------------------------------
		public void rechbynom(string nm)
		{
			int j=0;
			
			foreach (personne p in this)
			{
				if (p.getnom() == nm)
				{
					Console.WriteLine("Personne trouvé :{0} {1}",p.getnom(),p.getprenom());
					j++;
				}
			}
			if (j <= 1)
			{
				Console.WriteLine("Nombre de personne{0} trouvée{0} : {1}",((j==1)?"":"s"),j);
			}
			else
			{
				Console.WriteLine("Aucun résultat.");
			}
			Console.ReadLine();	//Pause
		}
		
		//------------------- Fonction rechbyprenom --------------------------------
		public void rechbyprenom(string pm)
		{
			int j=0;
			
			foreach (personne p in this)
			{
				if (p.getprenom() == pm)
				{
					Console.WriteLine("Personne trouvé :{0} {1}",p.getnom(),p.getprenom());
					j++;
				}
			}
			if (j <= 1)
			{
				Console.WriteLine("Nombre de personne{0} trouvée{0} : {1}",((j==1)?"":"s"),j);
			}
			else
			{
				Console.WriteLine("Aucun résultat.");
			}
			Console.ReadLine();	//Pause
		}
		
		//------------------- Fonction rechbyville --------------------------------
		public void rechbyville(string vl)
		{
			int j=0;
			
			foreach (personne p in this)
			{
				if (p.getville() == vl)
				{
					Console.WriteLine("Personne trouvé :{0} {1}",p.getnom(),p.getprenom());
					j++;
				}
			}
			if (j <= 1)
			{
				Console.WriteLine("Nombre de personne{0} trouvée{0} : {1}",((j==1)?"":"s"),j);
			}
			else
			{
				Console.WriteLine("Aucun résultat.");
			}
			Console.ReadLine();	//Pause
		}
		
		//------------------- Procédure sauvegarder -----------------------------
		public void sauvegarder()
		{

			// Flux qui va écrire dans le fichier
			// true permet d'ajouter au lieu de remplacer le fichier
			StreamWriter sw = new StreamWriter("repertoire.txt",false,System.Text.Encoding.UTF8);
			
			foreach (personne Pe in this)
			{
				
				if (Pe == null)
				{
					continue;
				}
				sw.WriteLine(Pe.ToString());
			}
			//sw.WriteLine();
			// On ferme le flux d'ecriture
			sw.Close();
		}
	}
	class Class1
	{
		/// <summary>
		/// Point d'entrée principal de l'application.
		/// </summary>
		[STAThread]
		static void Main(string[] args)
		{
			//
			// TODO : ajoutez ici le code pour démarrer l'application
			//
			ClearConsole ClearMyConsole = new ClearConsole();
			repertoire rpt= new repertoire();
			personne per=new personne();
			string nomp,prenomp,telhp,telpp,telbp;
			string numrp,ruep,cpostp,villp,email1p;
			string email2p,email3p;
			string mdfnm,mdfpm;
			string tmp="";
			int choix;
			int choix1=0;
			string quit;

			do
			{
				Console.WriteLine("------------------- MENU -------------------\n");
				Console.WriteLine("1) Afficher tout le répertoire,");
				Console.WriteLine("2) Ajouter une nouvelle personne dans le répertoire,");
				Console.WriteLine("3) Afficher les coordonnées d'une personne,");
				Console.WriteLine("4) Modifier les coordonnées d'une personne,*");
				Console.WriteLine("5) Supprimer une personne,*");
				Console.WriteLine("6) Rechercher par numéro de téléphone,");
				Console.WriteLine("7) Rechercher par nom,");
				Console.WriteLine("8) Rechercher par prénom,");
				Console.WriteLine("9) Rechercher par ville,");
				Console.WriteLine("10) Afficher les personnes commencant par une lettre du nom,*");
				Console.WriteLine("11) Afficher le nombre de personnes enregistrées,");
				Console.WriteLine("12) Actualiser,");
				Console.WriteLine("13) Réinitialiser la console");
				Console.WriteLine("14) Quitter");
				Console.Write("Votre choix : ");
				try
				{
					choix=Convert.ToInt32(Console.ReadLine());
				}
				catch(System.FormatException)
				{
					choix=0;
				}
				
				switch (choix)
				{
					case 1 : rpt.afficherrep();
						break;
					
					case 2 : Console.WriteLine("Ajouter une personne dans votre répertoire");
						// Saisie des coordonnées de la personne qui sera ajouter dans le répertoire
						Console.WriteLine("Entrer le nom :");
						nomp=Console.ReadLine();
						Console.WriteLine("Entrer le prénom :");
						prenomp=Console.ReadLine();
						Console.WriteLine("Entrer le n° téléphonique du domicile :");
						telhp=Console.ReadLine();
						Console.WriteLine("Entrer le n° du téléphone portable :");
						telpp=Console.ReadLine();
						Console.WriteLine("Entrer le n° téléphonique du bureau :");
						telbp=Console.ReadLine();
						Console.WriteLine("Entrer le n° de la rue :");
						numrp=Console.ReadLine();
						Console.WriteLine("Entrer le nom de la rue :");
						ruep=Console.ReadLine();
						Console.WriteLine("Entrer le code postal :");
						cpostp=Console.ReadLine();
						Console.WriteLine("Entrer le nom de la ville :");
						villp=Console.ReadLine();
						Console.WriteLine("Entrer le 1er adresse mail :");
						email1p=Console.ReadLine();
						Console.WriteLine("Entrer le 2ème adresse mail :");
						email2p=Console.ReadLine();
						Console.WriteLine("Entrer le 3ème adresse mail :");
						email3p=Console.ReadLine();
						// Création d'une nouvelle classse personne
						per=new personne(nomp,prenomp,telhp,telpp,telbp,numrp,ruep,cpostp,villp,email1p,email2p,email3p);
						// Ajout la nouvelle classe personne dans le répertoire
						rpt.ajouter(per);
						// Affichage du résultat
						rpt.afficherrep(per);
						break;

					case 3 : Console.WriteLine("Entrer le nom de la personne recherchée");
						nomp=Console.ReadLine();
						if (rpt.rechercherpers(nomp) != null)
						{
							per=rpt.rechercherpers(nomp);
							rpt.afficherrep(per);
						}
						else
						{
							Console.WriteLine("La personne que vous recherchez n'existe pas");
						}
						break;

					case 4 : // modifie les coordonnées d'une personne
						Console.WriteLine("Quel personne voulez-vous modifier?");
						Console.WriteLine("1. En recherchant dans la liste,");
						Console.WriteLine("2. En donnant le nom et prénom de la personne");
						Console.Write("Indiquez votre choix: ");
						try
						{
							choix1=Convert.ToInt32(Console.WriteLine());
						}
						catch(System.FormatException)
						{
							Console.WriteLine("Vous avez mal indiqué votre choix.");
							choix1=0;
						}
						switch(choix1)
						{
							case 1 : //ezkg,zeoig,
								break;

							case 2 : // Modification en indiquant nom & prénom de la personne
								Console.Write("Nom : ");
								mdfnm=Console.ReadLine();
								Console.Write("Prénom : ");
								mdfpm=Console.ReadLine();
								per=rpt.rechercherpers(mdfnm,mdfpm);
								break;

							default : break;
						}
						if ( choix1 == 1 || choix1 == 2)
						{
							rpt.modifier(per);
						}
						break;

					case 5 : // supprime une personne
						break;

					case 6 : // recherche par numéro de téléphone
						Console.WriteLine("Entrer le numéro de téléphone de domicile recherché :");
						telhp=Console.ReadLine();
						rpt.rechbytel(telhp);
						break;

					case 7 : // recherche par nom
						Console.WriteLine("Entrer le nom recherché :");
						nomp=Console.ReadLine();
						rpt.rechbynom(nomp);
						break;

					case 8 : // recherche par prénom
						Console.WriteLine("Entrer le prénom recherché :");
						prenomp=Console.ReadLine();
						rpt.rechbyprenom(prenomp);
						break;

					case 9 : // recherche par ville
						Console.WriteLine("Entrer la ville recherchée :");
						villp=Console.ReadLine();
						rpt.rechbyville(villp);
						break;

					
					case 10 : // affiche les personnes par lettre du nom
						break;
					
					case 11 : // affiche le nombre de personne dans le répertoire.
						if (rpt.Count != 0)
						{
							Console.WriteLine("Il y a actuellement {0} personne{1} dans le répertoire.",rpt.Count,((rpt.Count != 1)?"s":""));
						}
						else
						{
							Console.WriteLine("Le répertoire est vide.");
						}
						break;

					case 12 : //Finalize();	//destructeur ou constructeur pr actualiser
						break;


					case 13 : ClearMyConsole.Clear(); // Clear the screen
						break;

					case 14 : Console.Write("Voulez-vous réellement quitter l'application (o/n)? ");
						quit=Console.ReadLine();
						if (quit == "o" || quit == "O")
						{
							rpt.sauvegarder();
						}
						else
						{
							choix=0;
						}
						break;
					
					default : break;
				}
			}while(choix != 14);
		}
	}
}

 Conclusion

Je vous préviens que le code est incomplet.
Ses fonctions pour le moment sont l'ouverture du fichier txt, la lecture,
affichage des coordonnées d'une personne, et la sauvegarde (l'écriture) dans le fichier 'repertoire.txt'.

Je voudrais que vous puissiez m'aider pour faire les autres fonctions, c'est-à-dire la recherche par numéro de téléphone, la recherche par nom, la recherche par prénom et la recherche par ville; ces recherches doivent afficher le résultat en une liste de personne.
Et j'ai découvert un énorme problème : lorsque je fais 'Quitter' dans mon programme, il sauvegarde le contenu de l'ArrayList dans le fichier .txt mais dans le fichier .txt, il y a 2 lignes qui sont rajouté à la fin (ou plutôt il y a 2 retour à la lignes à la fin). Si je relance l'application, il y a un bug car c'est à cause de ces 2 retours à la ligne qui pose problème.

/!\
----------------------------------- -------------------------------------------------- ---------------------------------
Si vous pourriez m'aider à corriger et compléter mon code.
Les coordonnées dans le fichier 'repertoire.txt' sont entièrement factices issues de ma propre imagination.
N'essayer pas de faire quoi que ce soit avec ces coordonnées.
Je décline toute resposabilitée.
---------------------------------- -------------------------------------------------- ----------------------------------

Merci bien.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

27 février 2005 02:44:03 :
Découverte du bug qui rajoute 2 ligne lorsque l'application quitte en sauvegardant le fichier 'repertoire.txt'
02 mars 2005 03:22:00 :
Modification du code : correction lisibilité du code; ajout des fonctions rechbytel(), rechbynom(), rechbyprenom() et rechbyville(); correction d'un bug, création du fichier .txt si le fichier .txt n'existe pas; correction d'un bug, lorsque l'on tape un caractère, une chaîne, ou directement la touche 'Entrée', le menu s'affiche encore pour insister sur le fait qu'il faut taper un chiffre et non autre chose.
05 mars 2005 20:04:55 :
- Modification de la fonction 'sauvegarder()', il ne produit plus de bug lors de la prochaine exécution du programme. - Ajout de la fonction 'ToString()' dans la classe 'personne'.
10 mars 2005 00:42:03 :
- La classe 'repertoire' est complètement en collection (la déclaration du tableau de personnes 'rep' est mis en commentaire, donc ignoré). - Ajout de 4 nouvelles fonctions dans le menu principal : 1. modifier les coordonnées d'une personne, 2. supprimer une personne, 3. afficher le nombre de personnes enregistrées dans le répertoire, et 4.afficher les personnes par lettres alphabétiques. - Parmi ces quatres fonctions, la 3 est opérationnelle, la 1 est en cours, les deux autres sont a écrire.

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) SAUVEGARDE DES TAILLES ET LOCATIONS DES FENÊTRES. par cryt3k
Source avec Zip Source avec une capture Source .NET (Dotnet) TENNIS STATISTIQUES par thebigboss
Source avec Zip Source .NET (Dotnet) TRANSFERT DE DONNÉES, SÉRIALIZATION XML POUR WINFORM par l0r3nz1
Source avec une capture Source .NET (Dotnet) CONTRÔLE TEXTBOX VALIDATEUR par monsieurx12
Source avec Zip Source avec une capture Source .NET (Dotnet) PANEL IRC AVEC MARGE DEPLACABLE ET BACKGROUND IMAGE par yohan49

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) CRYPTAGE ET DECRYPTAGE DE REPERTOIRE par fredodo10
Source avec Zip Source .NET (Dotnet) SYNCHRONISATION DE REPERTOIRE par telynor
Source avec Zip Source avec une capture Source .NET (Dotnet) CLASSE DE SÉLECTION DE RÉPERTOIRE par metalseb
Source .NET (Dotnet) [C#] TRIER LE CONTENU D'UN RÉPERTOIRE par scoubidou944
Source .NET (Dotnet) [C#] AJOUTER LE CONTENU D'UN RÉPERTOIRE À UNE TREEVIEW par scoubidou944

Commentaires et avis

Commentaire de Bidou le 27/02/2005 18:41:53 administrateur CS

Pour être honnête, je n'ai pas regardé ton code en détail, mais je me suis aperçu d'une chose, c'est que tu venais sûrement du monde Java toi, non ?

En java, on fait plutôt des méthodes get et set, comme tu as fait :

   public string gettel_p()
        {
            return (tel_port);
        }
        public void settel_p(string tp)
        {
            tel_port=tp;
        }

Mais en C# on préfère largement utilisé les properties. Pour l'exemple précédant, on aurait qqch comme (on utilise à ce moment pas la convention 'get'):
  
  public string Tel_p
  {
        get { return this._tel_port; }
        set { this._tel_port = value; }
  }

Enfin, c'est un peu un détail... mais quand on débute, c'est toujours bon à savoir !

Commentaire de sebmafate le 28/02/2005 09:18:39 administrateur CS

une autre remarque... en C on aime bien passé à la ligne apès un ; c'est con mais ça rend un code plus "lisible"

Commentaire de Emmanuel2005 le 01/03/2005 13:44:13

Bonjour,
dans ton constructeur, tu commences par instancier l'objet Pe  : personne Pe=new personne();
Par la suite, tu RE-instancie l'objet :
Pe=new personne(n,p,th,tp,tb,nr,r,cp,v,e1,e2,e3);
Je viens du C++, et ça ne fait pas longtemps que je suis dans le C#, mais il me semble que la première instanciation ne sert pas à grand chose...

J'ai une deuxième remarque : la première fois que tu lances le programme, le fichier "repertoire.txt" n'existe, normalement, pas encore. A la ligne "StreamReader sr=new StreamReader("repertoire.txt");", une exception "System.IO.FileNotFoundException" est donc lancée. Récupérer cette exception pourrait peut être te permettre de créer le fichier ???

Troisième remarque : j'ai une erreur de compilation sur la ligne "return (); " de la fonction "public personne rechbytel(string t)" sous SharpDevelop. En attendant de coder la fonction, tu devrais plutôt mettre "return null;". (surtout que ta fonction n'es jamais appellée) :-)

Dermière remarque : si tu n'entres rien (ENTER direct), ton programme plante sur la ligne "choix=Convert.ToInt32(Console.ReadLine());"...

:-)
                

Commentaire de Kirdream le 02/03/2005 02:16:15

- Pour Bidou, en ce qui concerne les méthodes get et set, j'ai appris cette manière par mon prof de programmation. Je ne savais pas qu'il y avait un autre possibilité d'écrire ces méthodes. Je ne connais pas le langage Java, par contre, je connais un peu le C et le C++.

- Pour Sebmafate, d'accord, j'ai compris, je corrige ces "fautes", si on peut dire ça des fautes...

- Pour Emmanuel2005, dans la classe 'repertoire', selon moi, la première instanciation permet de créer une classe personne et la deuxième permet de l'utiliser. Enfin, je débute le C# donc je ne connais pas tout.

J'ai pris en compte ta 1ère remarque, j'ai donc supprimer la première instanciation, j'exécute le code et il me dit qu'il ne trouve pas la classe 'personne'. Il fallait juste que j'ajoute devant "Pe=new personne(n,p,th,tp,tb,nr,r,cp,v,e1,e2,e3);" le mot "personne" et ça marche!!! quelque octet de mon dans mon code, ça allège un peu!

Pour ta 2ème remarque, je viens d'ajouter : StreamWriter sw = new StreamWriter("repertoire.txt",true, System.Text.Encoding.Default);
sw.Close();
Cela permet de tester si le fichier existe ou pas, s'il n'existe pas, il est créé.

Pour ta 3ème remarque, je tiendrai compte.

Pour la dernière remarque, j'attrape l'exception et j'affecte la valeur 0 à la variable 'choix' comme ça le problème est résolu! :)

- Je voulais vous demander comment je peux résoudre le problème de la fonction 'sauvegarder()', parce que dans le fichier txt, il rajoute deux sauts de ligne à la fin et je ne sais pas comment y remèdier, si vous pouvez me dire comment faire ce serait sympa.

Commentaire de sebmafate le 02/03/2005 06:01:55 administrateur CS

1 - pour le problème de sauvegarde du ton fichier.... commence par retirer le sw.WriteLine après ta boucle

2 - dans cette boucle tu fais :
if (Pe != null) {
...
} else {
break;
}

utilise plutot :
if (Pe == null) continue;

3 - pour t'éviter la tartine dans le sw.WriteLine(Pe.getPrenom()....);
Dans ta classe personne, crée un override de la méthode ToString(). Tu n'auras plus qu'à faire Pe.ToString();

Séb

Commentaire de Kirdream le 05/03/2005 20:13:38

Merci sebmafate pour ton aide, lorsqu'on lance le programme une fois et que l'on quitte correctement, à la deuxième fois ça marche bien. Il ne bogue plus.

Par contre, je n'ai pas tout vérifier si le programme marche complétément.
En ce moment, je suis en train de modifier et d'ajouter d'autres fonctions dans mon programme et ça me complique les choses.
- modifier les coordonnées d'une personne,
- supprimer une personne,
- afficher le nombre de personnes dans le répertoire.

Et aussi, je me suis aperçu que "private personne[] rep=new personne[500];" dans la classe 'repertoire' est, il me semble, inutile donc je l'ai mis en commentaire pour l'instant. Mais je dois modifier tout le code....
Pour le moment, ça ne marche pas vraiment...

Commentaire de chango_abs le 04/11/2005 00:48:01

salut c'est bien ça

Commentaire de nicodev24 le 02/10/2006 23:09:46

Bonjour à tous,

serait il possible de stocker ces informations sous un autre type de format que le fichier texte ?
un type de stockage du style base de données (MySQL ou autre) qui n'ai pas besoin d'etre installé ?
ce serait pour y faire des requetes simples ( nbre_personnes = COUNT(personnes_id)), faciliter l'ajout et la suppression des données ...

si quelqu'un connait le format HyperFile de Windev (excuse la référence), je cherche quelque chose dans ce genre.
peut etre XML, si des requetes sont possibles ...

Merci des infos que vous pourrez me donner.

Commentaire de AS_95160 le 18/06/2007 13:37:45

bonjour à tous,

je suis encor débutant mais j'ai assez bien compris le code, par contre le fichier classClrSrc.cs je n'arrive pas à comprendre son fonctionnement.

Pourriez-vous me donner une explication svp c très important.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

supprimer, copier tous les fichiers d'un repertoire (del *.* sous DOS) [ par VoodooChiles ] Je cherche la syntaxe pour effectuer une File.copy (\\path1\\*.*, \\path2\\ )Par quoi remplacer *.* ????Merci ! taille d'un repertoire [ par meihua ] bonjour, j'aimerais savoir comment fait-on pour afficher la taille d'un repertoire d'abord est ce que c'est possible?! repertoire et fichier [ par junior300 ] salut je cherche a savoir comment on peut faire pour énumerer le contenu d'un répertoire dans un menu.merci de me répondre rapidementjunior300 ouvrir un repertoire avec un OpenFileDialog [ par nicola2s ] je voudrais utiliser une boite de dialogue pour ouvrir un repertoirej'utilise un OpenFileDialog masi ca ne permet que d'ouvrir des fichiers. Y a t il comment savoir si un repertoire ou un fichier sont existant ??? [ par shinevilkyo ] lu,j amerais savoir si il existe une fonction en c# qui me permette de verifier si un repertoire ou bien un fichier est present sur un de mes disque d Charger le contenu d'un répertoire via une url [ par reyman ] HelloJe connais la bibliotheque System.IO.DirectoryInfo pour recuperer la liste des fichiers d'un repertoire.Cela fonctionne qd on passe en parametre utilisateur active directory et droit sur repertoire [ par grossetruieviolette ] bonjour,je suis confront&#233; a un probleme : en effet je desire modifier les droits d'un repertoire pour donner l'attribut "modifier" et "lire" a pl Creer un repertoire [ par fred65200 ] Bonjour &#224; tous, depuis ce matin, je gal&#233;re pour trouver la synthaxe pour la cr&#233;ation d'un r&#233;pertoire et de sous r&#233;pertoire. J [c#]FTP [ par 00ali00 ] j'ai r&#233;ussi &#224; me connecter au serveur ftp mais je voudrais savoir quel est le repertoire courant du site. Est ce qu'il existe une commande o probleme repertoire [ par emmanuel9 ] Bonjour &#224; tous, En faite j'ai un repertoire avec pleins de fichier et je voudrais les copier vers un repertoire, quel est la meilleur m&#233;th


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,123 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales