begin process at 2012 05 27 19:02:21
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichiers / Disque

 > REPERTOIRE V2

REPERTOIRE V2


 Information sur la source

Note :
Aucune note
Catégorie :Fichiers / Disque Niveau :Initié Date de création :29/08/2002 Date de mise à jour :28/03/2004 15:49:19 Vu / téléchargé :5 714 / 133

Auteur : THEREALKILLER

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

 Description

La V 1.0 faisait pitié en fait lol  
Interessant pour allouer la memoire dynamiquement

Source

  • #include <stdlib.h> //exit
  • #include <fstream.h> //fichier ouverture fermeture
  • #include <iostream.h> //cout et cin
  • #include <string.h> //strcpy copie une chaine meme le caractere nul
  • #include "biblio.h"
  • #include "classlect.h"
  • #include <windows.h>
  • #include <stdio.h> // scanf
  • #define tompon while (cin.get()!='\n');
  • ////////////Fonction
  • void erreur(char *message);
  • void saisie();
  • void charge();
  • void sortir();
  • void listefichiers();
  • void afficheetoile();
  • ////////////Variables
  • int max=0;
  • int globalbeta =0;
  • bool suivifichier = false ;
  • char fichier[30]; // nom du fichier
  • char extention[]={'.','t','x','t','\0'};
  • char* nomfichierglobal = new char(10);
  • Personne lect;
  • Personne::Personne()
  • {
  • for(int y=0;y<20;y++)
  • {
  • nom[y] = new char[10];
  • prenom[y] = new char[10];
  • commentaire[y] = new char[20];
  • telephone[y] = new char[20];
  • }
  • }
  • Personne::~Personne()
  • {
  • free(nom);
  • free(prenom);
  • free(commentaire);
  • free(telephone);
  • }
  • void main()
  • {
  • char reponse;
  • do
  • {
  • cout<<" ____________Projet Pti-Repertoire-MENU_______________"<<endl;
  • cout<<"| |"<<endl;
  • cout<<"| "<<"(1) Creer fichier et saisir |"<<endl;
  • cout<<"| "<<"(2) Lister |"<<endl;
  • cout<<"| "<<"(3) Ajouter |"<<endl;
  • cout<<"| "<<"(4) Chercher |"<<endl;
  • cout<<"| "<<"(5) Supprimer |"<<endl;
  • cout<<"| "<<"(6) Changer de fichier |"<<endl;
  • cout<<"| "<<"(7) Lister les fichiers |"<<endl;
  • cout<<"| "<<"(8) Quitter le prog |"<<endl;
  • cout<<"|_____________________________________________________|"<<endl;
  • cout<<"|"<<endl;
  • cout<<"|->Repertoire en cours : "<<fichier<<endl;
  • cout<<endl;
  • cout<<"Entrez votre choix : ";
  • cin.get(reponse);
  • tompon;
  • switch (reponse)
  • {
  • case '1':
  • saisie();
  • break;
  • case '2':
  • lect.lister();
  • break;
  • case '3' :
  • lect.ajouter();
  • break;
  • case '4' :
  • lect.chercher();
  • break;
  • case '5' :
  • lect.supr();
  • break;
  • case '6' :
  • charge();
  • break;
  • case '7' :
  • listefichiers();
  • break;
  • case '8' :
  • sortir();
  • break;
  • default :
  • system("cls");
  • }
  • }while(1);
  • }
  • void erreur(char *message)
  • {
  • cout<<"Erreur"<<message;
  • exit(-1);
  • }
  • void charge()
  • {
  • suivifichier = false;
  • lect.copiefichierdsclasse();
  • lect.lister();
  • // ifstream charg (fichier);
  • // if (fichier==NULL)
  • // erreur(" de Personne");
  • // charg.close();
  • }
  • void saisie()
  • {
  • system("cls");
  • if(suivifichier==false)
  • {
  • cout<<"Saisir le nom du fichier"<<endl;
  • cin>>fichier;
  • suivifichier = true;
  • strcat(fichier,extention);
  • }
  • tompon;
  • ofstream sav=(fichier); //creation de l'objet sav puis ouvre le fichier
  • if (fichier==NULL)
  • erreur(" d'eriture dans le fichier ");
  • char buffer[50];
  • char buffer1[200];
  • char putain[4]="non";
  • char rep;
  • char fin='n';
  • do
  • {
  • /*==========================NOM==========================*/
  • cout<<"Nom : ";
  • cin.getline(buffer,50);
  • repertoire.nom=(char**) realloc (repertoire.nom,(max+1)*sizeof(char*));
  • repertoire.nom[max]=(char*) malloc (strlen(buffer)+1);
  • strcpy(repertoire.nom[max],buffer);
  • /*==========================PRENOM========================*/
  • cout<<"Prenom : ";
  • cin.getline(buffer,50);
  • repertoire.prenom=(char**) realloc (repertoire.prenom,(max+1)*sizeof(char*));
  • repertoire.prenom[max]=(char*) malloc (strlen(buffer)+1);
  • strcpy(repertoire.prenom[max],buffer);
  • /*==========================PHONE=========================*/
  • cout<<"Numero de telephone :";
  • cin.getline(buffer,50);
  • repertoire.phone=(char**) realloc (repertoire.phone,(max+1)*sizeof(char*));
  • repertoire.phone[max]=(char*) malloc (strlen(buffer)+1);
  • strcpy(repertoire.phone[max],buffer);
  • /*==========================COMMENTAIRE====================*/
  • cout<<"Avez vous des commentaires sur la personne ? o/n : ";
  • cin>>rep;
  • tompon;
  • if(rep =='o')
  • {
  • cout<<"Commentaire : ";
  • cin.getline(buffer1,200);
  • repertoire.coment=(char**) realloc (repertoire.coment,(max+1)*sizeof(char*));
  • repertoire.coment[max]=(char*) malloc (strlen(buffer1)+1);
  • strcpy(repertoire.coment[max],buffer1); //copie buffer dans repertoire
  • }
  • else
  • if(rep == 'n')
  • {
  • repertoire.coment=(char**) realloc (repertoire.coment,(max+1)*sizeof(char*));
  • repertoire.coment[max]=(char*) malloc (5);
  • strcpy(repertoire.coment[max],putain);
  • }
  • /*===================TRIER TOUT CE BORDEL=====================*/
  • char *pst=NULL;
  • for(int j=max;j>0;j--)
  • for(int k=0;k<j;k++)
  • if(stricmp(repertoire.nom[k],repertoire.nom[k+1]) >0)
  • {
  • pst=repertoire.nom[k];
  • repertoire.nom[k]=repertoire.nom[k+1];
  • repertoire.nom[k+1]=pst;
  • pst=repertoire.prenom[k];
  • repertoire.prenom[k]=repertoire.prenom[k+1];
  • repertoire.prenom[k+1]=pst;
  • pst=repertoire.phone[k];
  • repertoire.phone[k]=repertoire.phone[k+1];
  • repertoire.phone[k+1]=pst;
  • pst=repertoire.coment[k];
  • repertoire.coment[k]=repertoire.coment[k+1];
  • repertoire.coment[k+1]=pst;
  • }
  • cout<<"Continuer la saisie ? o/n : ";
  • cin>>fin;
  • tompon;
  • max++;
  • }while(fin!='n');
  • /*====================Rangez ds le dossier=====================*/
  • for(int h=0; h<max; h++)
  • {
  • sav<<repertoire.nom[h]<<",";
  • sav<<repertoire.prenom[h]<<",";
  • sav<<repertoire.phone[h]<<",";
  • sav<<repertoire.coment[h]<<","<<endl;
  • }
  • sav.close();//fermeture du fichier
  • if(repertoire.nom!=NULL)
  • for(int i=0;i<max;i++)
  • free(repertoire.nom[i]);
  • free(repertoire.nom);
  • if(repertoire.prenom!=NULL)
  • for(int f=0;f<max;f++)
  • free(repertoire.prenom[f]);
  • free(repertoire.prenom);
  • if(repertoire.phone!=NULL)
  • for(int g=0;g<max;g++)
  • free(repertoire.phone[g]);
  • free(repertoire.phone);
  • if(repertoire.coment!=NULL)
  • for(int p=0;p<max;p++)
  • free(repertoire.coment[p]);
  • free(repertoire.coment);
  • system("cls");
  • }
  • /*====================CHERCHER=====================*/
  • void Personne::chercher()
  • {
  • char* a=new char(10);
  • int u = 0;
  • bool trouve = false ;
  • int nblignesaute = copiefichierdsclasse();
  • do{
  • u=0;
  • cout<<"Tapez le nom de la personne a chercher"<<endl;
  • cout<<"Terminez par 0"<<endl;
  • cin>>a;
  • trouve = false;
  • do
  • {
  • if( strcmp(a,nom[u])==0 )
  • {
  • trouve = true;
  • afficheetoile();
  • cout<<"Nom<"<<" :"<<nom[u]<<endl;
  • cout<<"Prenom<"<<" :"<<prenom[u]<<endl;
  • cout<<"Telephone<"<<" :"<<telephone[u]<<endl;
  • cout<<"Comentaire<"<<" :"<<commentaire[u]<<endl;
  • }
  • else
  • {
  • u++;
  • }
  • }while((trouve==false) && (u<nblignesaute+1));
  • if(trouve==false)
  • {
  • cout<<"La recherche n'a pas ete effectue ou aucun resultat ne reponde a vos criteres."<<endl;
  • }
  • }while(*a!='0');
  • system("cls");
  • tompon;
  • }
  • /*====================SORTIR=====================*/
  • void sortir()
  • {
  • cout<<"Salut |:p)"<<endl;
  • printf("A la prochaine |:p)[< \n");
  • for(int xor=0;xor<30000;xor++)
  • {
  • Sleep(50/100);
  • printf("/\r");
  • Sleep(50/100);
  • printf("-\r");
  • Sleep(50/100);
  • printf("|\r");
  • printf("-\r");
  • }
  • _exit(1);
  • }
  • /*====================SUPPRIMER=====================*/
  • void Personne::supr()
  • {
  • ecrifichier(copiefichierdsclasse());
  • tompon;
  • }
  • /*====================ECRIRE DS LE FICHIER=====================*/
  • void Personne::ecrifichier(int nbligne)
  • {
  • int u=0;
  • bool trouve = false ;
  • char* a=new char(10);
  • ofstream sav=(fichier);
  • do{
  • u=0;
  • cout<<"Tapez le nom de la personne a supprimer"<<endl;
  • cout<<"Terminez par 0"<<endl;
  • cin>>a;
  • trouve = false;
  • do
  • {
  • if( strcmp(a,nom[u])==0 )
  • {
  • trouve = true;
  • for(int h=u;h<nbligne+1;h++)
  • {
  • nom[h]=nom[h+1];
  • prenom[h]=prenom[h+1];
  • telephone[h]=telephone[h+1];
  • commentaire[h]=commentaire[h+1];
  • }
  • for(int q=0; q<nbligne-1; q++)
  • {
  • sav<<nom[q]<<",";
  • sav<<prenom[q]<<",";
  • sav<<telephone[q]<<",";
  • sav<<commentaire[q]<<","<<endl;
  • }
  • sav.close();
  • }
  • else
  • {
  • u++;
  • }
  • }while((trouve==false) && (u<nbligne+1));
  • }while(*a!='0');
  • cout<<"Suppression reussie"<<endl;
  • }
  • /*====================Ajouter=====================*/
  • void Personne::ajouter()
  • {
  • system("cls");
  • int beta=copiefichierdsclasse();
  • char reponse ='o';
  • while(reponse=='o')
  • {
  • cout<<"Saisir nom"<<endl;
  • cin>>nom[beta];
  • cout<<"Saisir prenom"<<endl;
  • cin>>prenom[beta];
  • cout<<"Saisir telephone"<<endl;
  • cin>>telephone[beta];
  • cout<<"Saisir commentaire"<<endl;
  • gets(commentaire[beta]); //grace a gets on gere les espace
  • //car l'espace est considere commme
  • //un caraceter de remplissage
  • //par cin
  • globalbeta=beta++;
  • globalbeta++;
  • tompon;
  • cout<<"Voulez vous ajouter une autre personne ?"<<endl;
  • cin>>reponse;
  • }
  • triage(beta);
  • //tompon;
  • }
  • /*====================trier=====================*/
  • void Personne::triage(int maxnb)
  • {
  • char *pst=NULL;
  • for(int j=maxnb+1;j>0;j--)
  • {
  • for(int k=0;k<j;k++)
  • {
  • if(stricmp(nom[k],nom[k+1])>0)
  • {
  • pst=nom[k];
  • nom[k]=nom[k+1];
  • nom[k+1]=pst;
  • pst=prenom[k];
  • prenom[k]=prenom[k+1];
  • prenom[k+1]=pst;
  • pst=telephone[k];
  • telephone[k]=telephone[k+1];
  • telephone[k+1]=pst;
  • pst=commentaire[k];
  • commentaire[k]=commentaire[k+1];
  • commentaire[k+1]=pst;
  • }
  • }
  • }
  • recopier(fichier);
  • system("cls");
  • tompon;
  • }
  • /*====================copie le fichier ds la classe=====================*/
  • int Personne::copiefichierdsclasse()
  • {
  • // system("cls");
  • char ch;
  • char *tabfichier = (char*) malloc(1*sizeof(char));
  • char tm2nom[50];
  • char tmprenom[50];
  • char tmtel[50];
  • char tmcomt[50];
  • int i = 0 ;
  • int j = 0 ;
  • int f = 0 ;
  • int d = 0 ;
  • int nbdebut = 0;
  • int arepartir = 0;
  • int nbvirgule = 0;
  • int e =0;
  • int u = 0;
  • int beta=0;
  • int alfa = 0;
  • int contevir = 0;
  • int nblignesaute =0;
  • if(suivifichier == false)
  • {
  • cout<<"Quel fichier voulez ouvrir?"<<endl;
  • cout<<"Fichier :";
  • cin>>fichier;
  • cout<<endl;
  • suivifichier = true;
  • strcat(fichier,extention);
  • }
  • nomfichierglobal = fichier;
  • ifstream list (fichier);
  • while( list.get(ch) )
  • {
  • *(tabfichier+d)=ch;
  • d++;
  • j++;
  • tabfichier = (char*) realloc(tabfichier,d+1*sizeof(char));
  • }
  • tabfichier[d]='\0';
  • list.close();
  • for(i=0;i<j;i++)
  • {
  • if(tabfichier[i]==',')
  • {
  • contevir++;
  • arepartir = i - nbvirgule;
  • nbvirgule = i;
  • nbdebut = i - arepartir;
  • for(f=nbdebut;f<i;f++)
  • {
  • if(tabfichier[f]==',')
  • {
  • f++;
  • }
  • if(tabfichier[f]=='\n')
  • {
  • f++;
  • nblignesaute++;
  • }
  • if(contevir==1 && tabfichier[f]!=',' && tabfichier[f]!='\n')
  • {
  • if(f==i-1)
  • {
  • tm2nom[e]=tabfichier[f];
  • tm2nom[e+1]='\0';
  • }else
  • tm2nom[e]=tabfichier[f];
  • }else
  • if(contevir==2 && tabfichier[f]!=',' && tabfichier[f]!='\n')
  • {
  • if(f==i-1)
  • {
  • tmprenom[e]=tabfichier[f];
  • tmprenom[e+1]='\0';
  • }else
  • tmprenom[e]=tabfichier[f];
  • }else
  • if(contevir==3 && tabfichier[f]!=',' && tabfichier[f]!='\n')
  • {
  • if(f==i-1)
  • {
  • tmtel[e]=tabfichier[f];
  • tmtel[e+1]='\0';
  • }else
  • tmtel[e]=tabfichier[f];
  • }else
  • if(contevir==4 && tabfichier[f]!=',' && tabfichier[f]!='\n')
  • {
  • if(f==i-1)
  • {
  • tmcomt[e]=tabfichier[f];
  • tmcomt[e+1]='\0';
  • }else
  • tmcomt[e]=tabfichier[f];
  • }
  • e++;
  • }
  • switch(contevir)
  • {
  • case 1:
  • strcpy(nom[beta],*(&tm2nom));
  • e=0;
  • break;
  • case 2:
  • strcpy(prenom[beta],*(&tmprenom));
  • e=0;
  • break;
  • case 3 :
  • strcpy(telephone[beta],*(&tmtel));
  • e=0;
  • break;
  • case 4 :
  • strcpy(commentaire[beta],*(&tmcomt));
  • e=0;
  • beta++;
  • contevir=0;
  • break;
  • }
  • for(alfa=0;alfa<49;alfa++){
  • tm2nom[alfa]=' ';
  • tmprenom[alfa]=' ';
  • tmtel[alfa]=' ';
  • tmcomt[alfa]=' ';}
  • }
  • }
  • free(tabfichier);
  • return beta;
  • }
  • void Personne::recopier(char* fichier)
  • {
  • ofstream sav=(fichier);
  • for(int q=0; q<globalbeta; q++)
  • {
  • sav<<nom[q]<<",";
  • sav<<prenom[q]<<",";
  • sav<<telephone[q]<<",";
  • sav<<commentaire[q]<<","<<endl;
  • }
  • sav.close();
  • }
  • /*===================LISTER LE CONTENU DU FICHIER=====================*/
  • void Personne::lister()
  • {
  • system("cls");
  • int d =0;
  • int verif = 0;
  • d = copiefichierdsclasse();
  • for(int i=0;i<d;i++)
  • {
  • cout<<"Nom : "<<nom[i]<<endl;
  • cout<<"Prenom : "<<prenom[i]<<endl;
  • cout<<"Telephone : "<<telephone[i]<<endl;
  • cout<<"Commentaire : "<<commentaire[i]<<endl;
  • cout<<endl;
  • }
  • tompon;
  • tompon;
  • system("cls");
  • }
  • /*===================LISTER LES FICHIERS=====================*/
  • void listefichiers()
  • {
  • HANDLE hdlfff;
  • LPCTSTR dir = "*.txt";
  • WIN32_FIND_DATA IpFindFileData;
  • hdlfff = FindFirstFile(dir,&IpFindFileData);
  • cout<<IpFindFileData.cFileName<<"\n";
  • while (FindNextFile(hdlfff,&IpFindFileData)) {
  • cout<<IpFindFileData.cFileName<<"\n";}
  • tompon;
  • system("cls");
  • FindClose(hdlfff);
  • }
  • /*===================L4ETOILE=====================*/
  • void afficheetoile()
  • {
  • for(int xor=0;xor<20000;xor++)
  • {
  • Sleep(50/100);
  • printf("/\r");
  • Sleep(50/100);
  • printf("-\r");
  • Sleep(50/100);
  • printf("|\r");
  • printf("-\r");
  • }
  • }
#include <stdlib.h> //exit 
#include <fstream.h>    //fichier ouverture fermeture 
#include <iostream.h> //cout et cin 
#include <string.h>     //strcpy copie une chaine meme le caractere nul 
#include "biblio.h" 
#include "classlect.h" 
#include <windows.h>
#include <stdio.h>    // scanf 

#define tompon while (cin.get()!='\n'); 

////////////Fonction
void erreur(char *message); 
void saisie(); 
void charge(); 
void sortir(); 
void listefichiers();
void afficheetoile();


 
////////////Variables
int max=0; 
int globalbeta =0;
bool suivifichier = false ;
char fichier[30]; // nom du fichier 
char extention[]={'.','t','x','t','\0'}; 
char* nomfichierglobal = new char(10);


Personne lect; 

Personne::Personne() 
{ 

	for(int y=0;y<20;y++)
	{ 
		nom[y] = new char[10]; 
			prenom[y] = new char[10]; 
				commentaire[y] = new char[20]; 
						telephone[y] = new char[20];
	} 
} 

Personne::~Personne() 
{ 
	free(nom); 
	free(prenom); 
	free(commentaire); 
	free(telephone); 

} 

void main() 
{ 
   char reponse; 

       do 
       { 
        cout<<" ____________Projet Pti-Repertoire-MENU_______________"<<endl;
			  cout<<"|                                                     |"<<endl;
			  cout<<"|            "<<"(1) Creer fichier et saisir              |"<<endl; 
			  cout<<"|            "<<"(2) Lister                               |"<<endl;
			  cout<<"|            "<<"(3) Ajouter                              |"<<endl; 
			  cout<<"|            "<<"(4) Chercher                             |"<<endl; 
			  cout<<"|            "<<"(5) Supprimer                            |"<<endl; 
			  cout<<"|            "<<"(6) Changer de fichier                   |"<<endl;
			  cout<<"|            "<<"(7) Lister les fichiers                  |"<<endl;
			  cout<<"|            "<<"(8) Quitter le prog                      |"<<endl;			  
			  cout<<"|_____________________________________________________|"<<endl;
			  cout<<"|"<<endl;
			  cout<<"|->Repertoire en cours : "<<fichier<<endl;
			  cout<<endl; 
			  cout<<"Entrez votre choix : "; 
			  cin.get(reponse); 
			  tompon; 

       switch (reponse) 
           { 
			       case '1': 
				   saisie(); 
				   break; 

				   case '2': 
				   lect.lister();
					   
				   break; 

			       case '3' : 
			       lect.ajouter(); 
					  
			       break;
				   
				   case '4' : 
				   lect.chercher(); 
				   break; 

					case '5' : 
					lect.supr(); 
					break; 

					
					case '6' : 
					charge();
					break; 

					case '7' : 
					listefichiers();
					break; 

					case '8' : 
					sortir();
					break; 

					default :	
					system("cls");
					  
           } 

       }while(1); 
} 


void erreur(char *message) 
{ 
   cout<<"Erreur"<<message; 
       exit(-1); 
} 


void charge() 
{ 
	suivifichier = false;
	lect.copiefichierdsclasse();
	lect.lister();
  // ifstream charg (fichier); 
  // if (fichier==NULL) 
     //  erreur(" de Personne"); 

  // charg.close(); 
} 

void saisie() 
{ 
   system("cls");

   if(suivifichier==false)
   {
   cout<<"Saisir le nom du fichier"<<endl; 
   cin>>fichier;
   suivifichier = true;
   strcat(fichier,extention);
   }
   
   tompon;
   

   ofstream sav=(fichier); //creation de l'objet sav puis ouvre le fichier 

   if (fichier==NULL) 
   erreur(" d'eriture dans le fichier "); 

   char buffer[50]; 
   char buffer1[200]; 
   char putain[4]="non"; 
   char rep; 
   char fin='n'; 

   do 
   { 
/*==========================NOM==========================*/ 
cout<<"Nom : "; 
cin.getline(buffer,50); 
repertoire.nom=(char**) realloc (repertoire.nom,(max+1)*sizeof(char*)); 
repertoire.nom[max]=(char*) malloc (strlen(buffer)+1); 
strcpy(repertoire.nom[max],buffer); 


/*==========================PRENOM========================*/ 
cout<<"Prenom : "; 
cin.getline(buffer,50); 
repertoire.prenom=(char**) realloc (repertoire.prenom,(max+1)*sizeof(char*)); 
repertoire.prenom[max]=(char*) malloc (strlen(buffer)+1); 
strcpy(repertoire.prenom[max],buffer); 


/*==========================PHONE=========================*/ 
cout<<"Numero de telephone :"; 
cin.getline(buffer,50); 
repertoire.phone=(char**) realloc (repertoire.phone,(max+1)*sizeof(char*)); 
repertoire.phone[max]=(char*) malloc (strlen(buffer)+1); 
strcpy(repertoire.phone[max],buffer); 


/*==========================COMMENTAIRE====================*/ 
cout<<"Avez vous des commentaires sur la personne ? o/n : "; 
cin>>rep; 
tompon; 

   if(rep =='o') 
   { 

   cout<<"Commentaire : "; 

   cin.getline(buffer1,200); 

   repertoire.coment=(char**) realloc (repertoire.coment,(max+1)*sizeof(char*)); 

   repertoire.coment[max]=(char*) malloc (strlen(buffer1)+1); 


   strcpy(repertoire.coment[max],buffer1); //copie buffer dans repertoire 

   } 
   else 
   if(rep == 'n') 
   { 
   repertoire.coment=(char**) realloc (repertoire.coment,(max+1)*sizeof(char*)); 

   repertoire.coment[max]=(char*) malloc (5); 
   strcpy(repertoire.coment[max],putain); 
   } 




/*===================TRIER TOUT CE BORDEL=====================*/ 
char *pst=NULL; 


   for(int j=max;j>0;j--) 
   for(int k=0;k<j;k++) 

   if(stricmp(repertoire.nom[k],repertoire.nom[k+1]) >0) 
       { 
           pst=repertoire.nom[k]; 
           repertoire.nom[k]=repertoire.nom[k+1]; 
           repertoire.nom[k+1]=pst; 

           pst=repertoire.prenom[k]; 
           repertoire.prenom[k]=repertoire.prenom[k+1]; 
           repertoire.prenom[k+1]=pst; 

           pst=repertoire.phone[k]; 
           repertoire.phone[k]=repertoire.phone[k+1]; 
           repertoire.phone[k+1]=pst; 

           pst=repertoire.coment[k]; 
           repertoire.coment[k]=repertoire.coment[k+1]; 
           repertoire.coment[k+1]=pst; 

       } 

           cout<<"Continuer la saisie ? o/n : "; 
           cin>>fin; 
           tompon; 
           max++; 


   }while(fin!='n'); 

/*====================Rangez ds le dossier=====================*/ 
   for(int h=0; h<max; h++) 
   { 
	   sav<<repertoire.nom[h]<<","; 
	   sav<<repertoire.prenom[h]<<","; 
	   sav<<repertoire.phone[h]<<","; 
	   sav<<repertoire.coment[h]<<","<<endl;
   } 
   


   sav.close();//fermeture du fichier 

			if(repertoire.nom!=NULL) 
			for(int i=0;i<max;i++) 
			free(repertoire.nom[i]); 
			free(repertoire.nom); 

			if(repertoire.prenom!=NULL) 
			for(int f=0;f<max;f++) 
			free(repertoire.prenom[f]); 
			free(repertoire.prenom); 

			if(repertoire.phone!=NULL) 
			for(int g=0;g<max;g++) 
			free(repertoire.phone[g]); 
			free(repertoire.phone); 

			if(repertoire.coment!=NULL) 
			for(int p=0;p<max;p++) 
			free(repertoire.coment[p]); 
			free(repertoire.coment); 

	system("cls");

} 

/*====================CHERCHER=====================*/ 
void Personne::chercher() 
{

char* a=new char(10);
int u = 0; 

bool trouve = false ;
int nblignesaute = copiefichierdsclasse();
 
		do{
				u=0;
				cout<<"Tapez le nom de la personne a chercher"<<endl;
				cout<<"Terminez par 0"<<endl; 
				cin>>a;
				trouve = false;
			do
			{



				if( strcmp(a,nom[u])==0 )
				{
					trouve = true;
					
						afficheetoile();

					cout<<"Nom<"<<" :"<<nom[u]<<endl; 
					cout<<"Prenom<"<<" :"<<prenom[u]<<endl;
					cout<<"Telephone<"<<" :"<<telephone[u]<<endl;
					cout<<"Comentaire<"<<" :"<<commentaire[u]<<endl;
				
					
					
				}
				else
				{
					u++;

				}
					
			}while((trouve==false) && (u<nblignesaute+1));

			if(trouve==false)
			{
			cout<<"La recherche n'a pas ete effectue ou aucun resultat ne reponde a vos criteres."<<endl;
				
			}	


		}while(*a!='0');
	system("cls");

tompon; 

} 


/*====================SORTIR=====================*/ 
void sortir() 
{ 
   cout<<"Salut  |:p)"<<endl;

     
    printf("A la prochaine |:p)[< \n");

    for(int xor=0;xor<30000;xor++)
    {
        Sleep(50/100);
        printf("/\r");
        Sleep(50/100);
        printf("-\r");
        Sleep(50/100);
        printf("|\r");
        printf("-\r");

    }

   _exit(1); 
} 


/*====================SUPPRIMER=====================*/ 
void Personne::supr() 
{ 

	ecrifichier(copiefichierdsclasse());
		
	tompon; 

} 



/*====================ECRIRE DS LE FICHIER=====================*/ 
void Personne::ecrifichier(int nbligne) 
{
	int u=0;
	bool trouve = false ;
	char* a=new char(10);

	ofstream sav=(fichier);

		do{
				
				u=0;
				cout<<"Tapez le nom de la personne a supprimer"<<endl;
				cout<<"Terminez par 0"<<endl; 
				cin>>a;
				trouve = false;
				
			
			do
			{



				if( strcmp(a,nom[u])==0 )
				{
					trouve = true;
				
					for(int h=u;h<nbligne+1;h++)
					{
					nom[h]=nom[h+1];
					prenom[h]=prenom[h+1];
					telephone[h]=telephone[h+1];
					commentaire[h]=commentaire[h+1];
					}

					 for(int q=0; q<nbligne-1; q++) 
						{ 
							sav<<nom[q]<<","; 
							sav<<prenom[q]<<","; 
							sav<<telephone[q]<<","; 
							sav<<commentaire[q]<<","<<endl;
						} 
					 
					   sav.close();			
					
				}
				else
				{
					u++;

				}
				

				
			}while((trouve==false) && (u<nbligne+1));


		}while(*a!='0');

			cout<<"Suppression reussie"<<endl;

}


/*====================Ajouter=====================*/ 
void Personne::ajouter() 
{
system("cls");
int beta=copiefichierdsclasse();

char reponse ='o';

	
			while(reponse=='o')
			{
				cout<<"Saisir nom"<<endl;
				cin>>nom[beta];

				cout<<"Saisir prenom"<<endl;
				cin>>prenom[beta];

				cout<<"Saisir telephone"<<endl;
				cin>>telephone[beta];

				cout<<"Saisir commentaire"<<endl;
				gets(commentaire[beta]); //grace a gets on gere les espace
										//car l'espace est considere commme
										//un caraceter de remplissage
										//par cin 



				globalbeta=beta++;
				globalbeta++;
				tompon; 
				cout<<"Voulez vous ajouter une autre personne ?"<<endl;
				cin>>reponse;

			}

			triage(beta);

		//tompon; 
}


/*====================trier=====================*/ 
void Personne::triage(int maxnb)
{

	char *pst=NULL; 

	for(int j=maxnb+1;j>0;j--)
	{
		for(int k=0;k<j;k++)
		{

		  if(stricmp(nom[k],nom[k+1])>0) 
		   { 
			   pst=nom[k]; 
			   nom[k]=nom[k+1]; 
			   nom[k+1]=pst; 

			   pst=prenom[k]; 
			   prenom[k]=prenom[k+1]; 
			   prenom[k+1]=pst; 

			   pst=telephone[k]; 
			   telephone[k]=telephone[k+1]; 
			   telephone[k+1]=pst; 

			   pst=commentaire[k]; 
			   commentaire[k]=commentaire[k+1]; 
			   commentaire[k+1]=pst; 

		   } 
		}
	}

	recopier(fichier);
	system("cls");
	tompon; 
}


/*====================copie le fichier ds la classe=====================*/ 
int Personne::copiefichierdsclasse()
{
//	system("cls");

char ch; 
char *tabfichier = (char*) malloc(1*sizeof(char));
char tm2nom[50];
char tmprenom[50];
char tmtel[50];
char tmcomt[50]; 


int i = 0 ; 
int j = 0 ; 
int f = 0 ; 
int d = 0 ; 
int nbdebut = 0;
int arepartir = 0;
int nbvirgule = 0; 
int e =0;
int u = 0; 
int beta=0; 
int alfa = 0; 
int contevir = 0;
int nblignesaute =0; 


   if(suivifichier == false)
   {
   cout<<"Quel fichier voulez ouvrir?"<<endl; 
   cout<<"Fichier :"; 
   cin>>fichier; 
   cout<<endl;
   suivifichier = true;
   strcat(fichier,extention);  
   }

	
   
   nomfichierglobal = fichier;

   ifstream list (fichier); 


   	while( list.get(ch) )
		{ 
		*(tabfichier+d)=ch; 
		d++;
		j++;
		tabfichier = (char*) realloc(tabfichier,d+1*sizeof(char));
		}

		tabfichier[d]='\0';
	

		list.close();

for(i=0;i<j;i++) 
{ 

		if(tabfichier[i]==',') 
		{ 
	
		contevir++; 
	

		arepartir = i - nbvirgule; 


		nbvirgule = i; 


		nbdebut = i - arepartir; 


			for(f=nbdebut;f<i;f++) 
			{ 
		
					if(tabfichier[f]==',')
					{
						f++;
			
					}

					if(tabfichier[f]=='\n')
					{	
			
						f++;
						nblignesaute++;
					}

		
				if(contevir==1 && tabfichier[f]!=',' && tabfichier[f]!='\n')
				{

					if(f==i-1)
					{
						tm2nom[e]=tabfichier[f];
						tm2nom[e+1]='\0';

					}else
						tm2nom[e]=tabfichier[f];


					}else
						if(contevir==2 && tabfichier[f]!=',' && tabfichier[f]!='\n')
						{
								if(f==i-1)
								{
								tmprenom[e]=tabfichier[f];
								tmprenom[e+1]='\0';
								}else
			
								tmprenom[e]=tabfichier[f];

						}else
							if(contevir==3 && tabfichier[f]!=',' && tabfichier[f]!='\n')
							{

								if(f==i-1)
								{
								tmtel[e]=tabfichier[f];
								tmtel[e+1]='\0';
								}else
			
								tmtel[e]=tabfichier[f];
		

							}else
								if(contevir==4 && tabfichier[f]!=',' && tabfichier[f]!='\n')
								{
									if(f==i-1)
									{
									tmcomt[e]=tabfichier[f];
									tmcomt[e+1]='\0';
									}else
			
									tmcomt[e]=tabfichier[f];
				
								}

						e++; 	
						
		} 


	switch(contevir) 
           { 
				 case 1:
					 strcpy(nom[beta],*(&tm2nom));
						e=0; 
						 break; 

						 case 2: 
						  strcpy(prenom[beta],*(&tmprenom));
							e=0; 
							  break; 

								  case 3 : 
									strcpy(telephone[beta],*(&tmtel));
										e=0;
									      break; 

								    case 4 : 
									   	strcpy(commentaire[beta],*(&tmcomt));
										e=0; 
										beta++;
										contevir=0; 
										 break; 

           } 

	for(alfa=0;alfa<49;alfa++){
	tm2nom[alfa]=' ';
	tmprenom[alfa]=' ';
	tmtel[alfa]=' ';
	tmcomt[alfa]=' ';} 



	} 


} 
	
		free(tabfichier);
		return beta;
	
}



void Personne::recopier(char* fichier)
{
	
	ofstream sav=(fichier);


	 for(int q=0; q<globalbeta; q++) 
						{ 
							sav<<nom[q]<<",";	
							sav<<prenom[q]<<","; 
							sav<<telephone[q]<<","; 
							sav<<commentaire[q]<<","<<endl;
						} 

						 
					   sav.close();			
}


/*===================LISTER LE CONTENU DU FICHIER=====================*/ 
void Personne::lister()
{

	system("cls");
    int d =0;
	int verif = 0;
   


		d = copiefichierdsclasse();

		for(int i=0;i<d;i++)
		{
				cout<<"Nom : "<<nom[i]<<endl;
				cout<<"Prenom : "<<prenom[i]<<endl;
				cout<<"Telephone : "<<telephone[i]<<endl;
				cout<<"Commentaire : "<<commentaire[i]<<endl;
				cout<<endl;						
		}
tompon;
tompon;

	system("cls");
}



/*===================LISTER LES FICHIERS=====================*/ 
void listefichiers()
{
		
	HANDLE hdlfff;
    LPCTSTR dir = "*.txt";
    WIN32_FIND_DATA IpFindFileData;
	hdlfff = FindFirstFile(dir,&IpFindFileData);
	cout<<IpFindFileData.cFileName<<"\n";
	while (FindNextFile(hdlfff,&IpFindFileData)) {
	cout<<IpFindFileData.cFileName<<"\n";}

	tompon;
	system("cls");

	FindClose(hdlfff);
}


/*===================L4ETOILE=====================*/ 
void afficheetoile()
{
	 for(int xor=0;xor<20000;xor++)
    {
        Sleep(50/100);
        printf("/\r");
        Sleep(50/100);
        printf("-\r");
        Sleep(50/100);
        printf("|\r");
        printf("-\r");

    }
}









 Conclusion

Ici se trouve le code principal . Dans le zip le reste ...

 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


 Sources du même auteur

TUTORIAL BTS 2EME ANN&#201;E
CRYPTAGE D'UN TEXTE
MOYENNE
HEURE ET LA DATE
CALCULETTE

 Sources de la même categorie

COMPTER LE NOMBRE DE PAGES D'UN FICHIER PDF par Renfield
Source avec Zip Source avec une capture GENERE BMP par lajouad
Source avec Zip Source avec une capture GETIONNAIRE D'UNE BIBLIOTHÉQUE EN C par benzarabel
FONCTION D'ÉDITION DE FICHIER BIT À BIT [C-MULTIPLATEFORME] par lynxtyle
Source avec Zip Source avec une capture UN GESTIONNAIRE DU FICHIER par benzarabel

Commentaires et avis

Commentaire de THEREALKILLER le 31/08/2002 15:22:00

il y a un pb au niveau de la liberation de memoire je ne comprend pas ...

Commentaire de THEREALKILLER le 01/09/2002 20:52:18

Bon il ny a plus de pb pour liberer la memoire
pb: chercher ds le fichier tout les nom commencant par une lettre defini

Commentaire de AngeloVivaldi le 23/07/2003 23:57:31

tu sais que kan tu inclus fstream.h, cout et cin sont dedans ...

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,045 sec (3)

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