Page principale | Hiérarchie des classes | Liste alphabétique | Liste des classes | Liste des fichiers | Membres de classe | Membres de fichier | Pages associées

TestDBFunc.cpp

Aller à la documentation de ce fichier.
00001 /*! \file TestDBFunc.cpp
00002     \brief Test de la classe \a DataBase.
00003 
00004     Test la classe \a DataBase avec une console de gestion. Peut servir de gestionnaire manuel d'une base.
00005 
00006     \author     aerith (contact@aerith.biz - www.aerith.biz)
00007     \version    1.0
00008     \date       18/12/2005
00009 */
00010 
00011 
00012 #include    "TestDB.h"
00013 
00014 void    ListTable(DataBase *pBase)
00015 {
00016     printf("Id\t | Nom\t\t | Nb entree\t | Nb label\n");
00017 
00018     for(int i = 0; i < pBase->GetNbTable(); i++)
00019     {
00020         printf("%i\t | %s\t | %i\t\t | %i\n", pBase->GetTableNo(i)->GetId(), pBase->GetTableNo(i)->GetName(),
00021             pBase->GetTableNo(i)->GetNbEntry(), pBase->GetTableNo(i)->GetNbData()
00022         );
00023     }
00024 
00025     printf("\n");
00026 }
00027 
00028 void    GereTable(DataBaseTable *pTable)
00029 {
00030     char        Key;
00031     char        Name[1024];
00032     int         Nb, i;
00033 
00034     do
00035     {
00036         ConsoleClear();
00037 
00038         printf("--- Gestion d'une table ---\n\n");
00039         printf("Nom de la table  : %s\n", pTable->GetName());
00040         printf("Nombre d'entrees : %i\n", pTable->GetNbEntry());
00041         printf("Nombre de labels : %i\n\n", pTable->GetNbData());
00042         printf("\t a : Ajouter une entree\n");
00043         printf("\t d : Supprimer une entree\n");
00044         printf("\t g : Gerer une entree\n\n");
00045         printf("\t l : Ajouter un label\n");
00046         printf("\t r : Renomer un label\n");
00047         printf("\t s : Supprimer un label\n\n");
00048         printf("\t q : Pour retourner au menu principal\n\n");
00049         printf("\t Entrez le numero de l'action souhaiter : ");
00050 
00051         fflush(stdin);
00052         Key = KeyGet();
00053 
00054         ConsoleClear();
00055 
00056         switch(Key)
00057         {
00058             case    'a' :
00059                 printf("- Ajout d'une entree -\n\n");
00060 
00061                 i = pTable->GetNbEntry();
00062                 pTable->AddEntry();
00063 
00064                 if((i + 1) == pTable->GetNbEntry())
00065                     printf("Entree ajoutee");
00066                 else
00067                     printf("Ajout impossible");
00068                 break;
00069 
00070             case    'd' :
00071                 printf("- Suppression d'une entree -\n\n");
00072 
00073                 ListEntry(pTable);
00074 
00075                 printf("\t Entrez l'Id de l'entree a supprimer, 0 pour quitter\n\n: ");
00076                 scanf("%i",&Nb);
00077 
00078                 if(pTable->GetEntry(Nb))
00079                 {
00080                     i = pTable->GetNbEntry();
00081                     pTable->DelEntry(Nb);
00082 
00083                     if((i - 1) == pTable->GetNbEntry())
00084                         printf("\n\nEntree supprimee");
00085                     else
00086                         printf("\n\nSuppression impossible");
00087                 }
00088                 else
00089                     printf("\n\nEntree non trouvee");
00090 
00091                 break;
00092 
00093             case    'g' :
00094                 printf("- Gestion d'une entree -\n\n");
00095 
00096                 ListEntry(pTable);
00097 
00098                 printf("\t Entrez l'Id de l'entree a gerer, 0 pour quitter\n\n: ");
00099                 scanf("%i",&Nb);
00100 
00101                 if(Nb)
00102                     GereEntry(pTable, Nb);
00103                 else
00104                     printf("\n\nEntree non trouvee");
00105 
00106                 break;
00107 
00108             case    'l' :
00109                 printf("- Ajout d'un label -\n\n");
00110 
00111                 for(i = 0; i < pTable->GetNbData(); i++)
00112                     printf("%i\t : %s\n", i, pTable->GetLabel(i));
00113 
00114                 printf("\t Entrez le nom, 0 pour quitter\n\n: ");
00115                 scanf("%s", Name);
00116 
00117                 if(Name)
00118                 {
00119                     if(pTable->AddLabel(Name))
00120                         printf("\n\nLabel ajouter");
00121                     else
00122                         printf("\n\nAjout impossible");
00123                 }
00124 
00125                 break;
00126 
00127             case    'r' :
00128                 printf("- Renomage d'un label -\n\n");
00129 
00130                 for(i = 0; i < pTable->GetNbData(); i++)
00131                     printf("%i\t : %s\n", i + 1, pTable->GetLabel(i));
00132 
00133                 printf("\t Entrez l'id, 0 pour quitter\n\n: ");
00134                 scanf("%i", &Nb);
00135 
00136                 if(Nb && (Nb <= pTable->GetNbData()))
00137                 {
00138                     printf("\t Entrez le nom, 0 pour quitter\n\n: ");
00139                     scanf("%s", Name);
00140 
00141                     if(*Name != '0')
00142                     {
00143                         if(pTable->SetLabel(Nb - 1, Name))
00144                             printf("\n\nLabel renomer");
00145                         else
00146                             printf("\n\nRenomage impossible");
00147                     }
00148                 }
00149 
00150                 break;
00151 
00152             case    's' :
00153                 printf("- Suppression d'un label -\n\n");
00154 
00155                 for(i = 0; i < pTable->GetNbData(); i++)
00156                     printf("%i\t : %s\n", i + 1, pTable->GetLabel(i));
00157 
00158                 printf("\t Entrez le nom, 0 pour quitter\n\n: ");
00159                 scanf("%s", Name);
00160 
00161                 if(*Name != '0')
00162                 {
00163                     if(pTable->DelLabel(Name))
00164                         printf("\n\nLabel supprimer");
00165                     else
00166                         printf("\n\nSuppression impossible");
00167                 }
00168 
00169                 break;
00170         }
00171 
00172         if(Key != 'q')
00173         {
00174             printf("\n\nPressez \'entree\' pour continuer\n");
00175             KeyGet();
00176         }
00177     }
00178     while(Key != 'q');
00179 }
00180 
00181 void    ListEntry(DataBaseTable *pTable)
00182 {
00183     int     i, j;
00184 
00185     printf("Id\t | Size:Data (%i fois)\n\n\t", pTable->GetNbData());
00186 
00187     for(i = 0; i < pTable->GetNbData(); i++)
00188         printf(" | %s\t", pTable->GetLabel(i));
00189 
00190     printf("\n");
00191 
00192     for(i = 0; i < pTable->GetNbEntry(); i++)
00193     {
00194         printf("%i\t", pTable->GetEntryNo(i)->GetId());
00195 
00196         for(j = 0; j < pTable->GetNbData(); j++)
00197             printf(" | %i:%s\t", pTable->GetDataNo(i, j)->GetSize(), pTable->GetDataNo(i, j)->GetData());
00198 
00199         printf("\n");
00200     }
00201     printf("\n");
00202 }
00203 
00204 void        GereEntry(DataBaseTable *pTable, int iId)
00205 {
00206     int     Nb;
00207     char    Name[1024];
00208     char    Buffer[1024];
00209 
00210     do
00211     {
00212         ConsoleClear();
00213 
00214         printf("--- Gestion d'une entree ---\n\n");
00215 
00216         printf("Nom de la table : %s\n", pTable->GetName());
00217         printf("Id de l'entree  : %i\n\n", iId);
00218 
00219         for(Nb = 0; Nb < pTable->GetNbData(); Nb++)
00220             printf("%i \t %s\t %i : %s\n", Nb + 1, pTable->GetLabel(Nb), pTable->GetData(iId, Nb)->GetSize(), pTable->GetData(iId, Nb)->GetData());
00221 
00222         printf("\n\t Entrez l'id de la data a modifiee, 0 pour quitter\n\n: ");
00223 
00224         scanf("%i", &Nb);
00225 
00226         ConsoleClear();
00227 
00228         if(Nb && (Nb <= pTable->GetNbData()))
00229         {
00230             printf("Ancienne data \'%s\': \n", pTable->GetLabel(Nb - 1));
00231             printf("%i : %s\n\n", pTable->GetData(iId, Nb - 1)->GetSize(), pTable->GetData(iId, Nb - 1)->GetData());
00232             printf("\t Entrez la nouvelle data\n\n: ");
00233 
00234             scanf("%s", Buffer);
00235 
00236             if(pTable->GetData(iId, Nb - 1)->SetData(Buffer) == strlen(Buffer))
00237                 printf("\n\nData modifiee");
00238             else
00239                 printf("\n\nModification impossible");
00240 
00241             printf("\n\nPressez \'entree\' pour continuer\n");
00242             KeyGet();
00243         }
00244     }
00245     while(Nb);
00246 }
00247 

Généré le Thu Oct 12 01:00:43 2006 pour GestionAsso par  doxygen 1.3.9.1