Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

ZtringListList.h

Go to the documentation of this file.
00001 // ZenLib::ZtringListList - vector<vector<std::string>> is better
00002 // Copyright (C) 2002-2003 Jérôme Martinez, Zen@MediaArea.net
00003 //
00004 // This software is provided 'as-is', without any express or implied
00005 // warranty.  In no event will the authors be held liable for any damages
00006 // arising from the use of this software.
00007 //
00008 // Permission is granted to anyone to use this software for any purpose,
00009 // including commercial applications, and to alter it and redistribute it
00010 // freely, subject to the following restrictions:
00011 //
00012 // 1. The origin of this software must not be misrepresented; you must not
00013 //    claim that you wrote the original software. If you use this software
00014 //    in a product, an acknowledgment in the product documentation would be
00015 //    appreciated but is not required.
00016 // 2. Altered source versions must be plainly marked as such, and must not be
00017 //    misrepresented as being the original software.
00018 // 3. This notice may not be removed or altered from any source distribution.
00019 //
00020 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00021 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00022 // ZtringListList
00023 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00024 //
00025 // Version 0.0.1
00026 // -------------
00027 //
00028 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00029 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00030 //
00031 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00032 
00033 //---------------------------------------------------------------------------
00034 #ifndef CChaine_Tableau2H
00035 #define CChaine_Tableau2H
00036 //---------------------------------------------------------------------------
00037 
00038 //---------------------------------------------------------------------------
00039 #include <ZenLib/ZtringList.h>
00040 //---------------------------------------------------------------------------
00041 
00042 //---------------------------------------------------------------------------
00043 #define CCHAINE_TABLEAU2_CASSE  1   //Active la sensibilite a la casse (min/maj)
00044 #define CCHAINE_TABLEAU2_DESC   2   //Tri descendant au lieu d'ascendant
00045 //---------------------------------------------------------------------------
00046 
00047 //***************************************************************************
00048 // Classe ZtringListList
00049 //***************************************************************************
00050 
00051 namespace ZenLib
00052 {
00053 
00054 class ZtringListList : public std::vector<ZtringList>
00055 {
00056 public :
00057     //Gestion de la classe
00058     void CChaine_Tableau2_Commun (int Taille_Max2=0, int Taille_Max1=0, const Ztring &Separateur1="\r\n", const Ztring &Separateur2=";", const char *Source="");
00059     ZtringListList (int Taille_Max2=0, int Taille_Max1=0, const Ztring &Separateur1="\r\n", const Ztring &Separateur2=";", const Ztring &Source="");
00060     ZtringListList (const ZtringListList &Source);
00061     ZtringListList (const Ztring &Source);
00062     ZtringListList (const char* Source);
00063     ~ZtringListList ();
00064 
00065     //Operateurs
00066     ZtringListList &operator = (const ZtringListList &Source);
00067     ZtringListList &operator += (const ZtringListList &Source);
00068     ZtringListList operator + (const ZtringListList &Source) const;
00069     bool operator == (const ZtringListList &Source) const;
00070     bool operator != (const ZtringListList &Source) const;
00071 /*
00072     CChaine_Tableau1 &operator [] (int Pos0); //Lecture ecriture
00073     CChaine_Tableau1 &operator [] (int Pos0) const; //Lecture seulement
00074 */
00075     ZtringList &operator () (size_t Pos0); //Lecture ecriture
00076 //    CChaine_Tableau1 &operator () (int Pos0) const; //Lecture seulement
00077 
00078     Ztring &operator () (size_t Pos0, size_t Pos1); //Lecture ecriture
00079     Ztring &operator () (const Ztring &Pos0, size_t Pos1=1); //Lecture ecriture
00080     Ztring &operator () (const Ztring &Pos0, size_t Pos0_1, size_t Pos1); //Lecture ecriture
00081 //    CChaine &operator () (int Pos0, int Pos1) const; //Lecture seulement
00082 
00083     //Edition
00084     Ztring Lire () const; //Lecture de tout
00085     Ztring Lire (size_t Pos0) const; //Lecture d'une ligne
00086     Ztring Lire (size_t Pos0, size_t Pos1) const; //Lecture d'un champs
00087     Ztring Lire (const Ztring &Pos0, size_t Pos1=1) const; //Lecture d'un champs en position 0
00088     Ztring Lire (const Ztring &Pos0, Ztring Default, size_t Pos1=1) const; //Lecture d'un champs en position 0 avec une option par defaut
00089 //    CChaine Lire (const CChaine &Pos0, int Pos0_1, int Pos1) const; //Lecture d'un champs en position Pos0_1
00090 
00091     Ztring Lire1 (size_t Pos1) const; //Lecture d'une colonne
00092     int Ecrire (const Ztring &AEcrire); //Ecriture de tout
00093     int Ecrire (const char *AEcrire, size_t Pos0); //Ecriture d'une ligne
00094     int Ecrire (const Ztring &AEcrire, size_t Pos0); //Ecriture d'une ligne
00095     int Ecrire (const ZtringList &AEcrire, size_t Pos0); //Ecriture d'une ligne
00096     int Ecrire (const Ztring &AEcrire, size_t Pos0, size_t Pos1); //Ecriture d'un champs
00097     void push_back (char* ToAdd);
00098     void push_back (const ZtringList &ToAdd);
00099 
00100 /*    int Ecrire (const CChaine &AEcrire, const CChaine &Pos0, int Pos1=1); //Ecriture d'un champs en recherchant Pos0T en position 0
00101     int Ecrire (const CChaine &AEcrire, const CChaine &Pos0, int Pos0_1, int Pos1); //Ecriture d'un champs en recherchant Pos0T en position Pos0_1
00102 /*
00103     int EcrireEx (const CChaine &AEcrire, int Pos0, int Pos1); //Remplir un champ avec options (Espace = Ne pas ecrire)
00104     int Ajouter (const CChaine_Tableau1 &AAjouter); //Ajout d'une ligne a la fin
00105     int Ajouter1 (const CChaine &AAjouter); //Ajout d'une nouvelle colonne
00106     int Inserer (const CChaine_Tableau1 &AInserer, int Pos0); // Insertion d'un champs et decalage des champs suivants
00107     int Inserer1 (const CChaine &AInserer, int Pos1); // Insertion d'une colonne
00108     int Permuter (int Pos0_A, int Pos0_B); // Permutation de deux ligne
00109     int Permuter1 (int Pos1_A, int Pos1_B); // Permutation de deux colonnes
00110     int Supprimer (); //Suppression de tout
00111     int Supprimer (int Pos0); //Suppression d'une ligne et decalage des champs suivants
00112     int Supprimer (const CChaine &ARechercher, int Pos1=0, const CChaine &Comparaison="=="); //Suppression de plusieurs lignes avec un selecteur au niveau d'une colonne
00113     int Supprimer1 (int Pos1); //Suppression d'une colonne
00114     int Trier (int Pos1=0, int Options=0); //Tri en fonction d'une colonne
00115 */
00116     int Rechercher (const Ztring &ARechercher, size_t Pos1=0, size_t Pos0Debut=0, const Ztring &Comparaison="==", int Options=0) const; //recherche une ligne contenant ARechercher dans une colonne
00117     Ztring RechercherValeur (const Ztring &ARechercher, size_t Pos1Valeur=1, size_t Pos1=0, size_t Pos0Debut=0, const Ztring &Comparaison="==", int Options=0) const; //retourne le champs Pos1Valeur correspondant a la ligne trouvee
00118 /*
00119     int Remplacer (const CChaine &ARechercher, const CChaine &ARemplacer, int Pos1=-1, const CChaine &Comparaison="==", int Options=0); //Remplace toutes les occurences
00120 
00121     //Informations
00122     int Taille_Get (int Rang=0) const; //Nombre de champs
00123     int Taille_Max_Set (int Taille_Max_Nouveau0, int Taille_Max_Nouveau1=-1);
00124 */
00125     int Separateur_Set (const Ztring &Separateur_Nouveau0, const Ztring &Separateur_Nouveau1=";");
00126     //size_t size() const;
00127 
00128     //Divers
00129     ZtringListList SousTableau (const Ztring &ARechercher, int Pos1=0, int Pos0Debut=0, const Ztring &Comparaison="==", int Options=0) const; //retourne tout
00130 
00131 protected :
00132    //CChaine_Tableau1** Chaine;
00133    //int Taille[2];
00134    //int Taille_Max[2];
00135    Ztring Separateur[2];
00136    int Nettoyer(); //Rendu necessaire par operateur () et []
00137    //size_t size_;
00138 
00139 };
00140 
00141 } //namespace
00142 #endif
00143 

Generated on Wed Jun 18 00:34:51 2003 for ZenLib by doxygen1.3-rc3