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

IniSection.cpp

Aller à la documentation de ce fichier.
00001 /*! \file IniSection.cpp
00002     \brief Gestion de fichier ini.
00003 
00004     Gestion d'une section dans \a Ini.
00005 
00006     \author     aerith (http://aerith.fr)
00007     \version    1.0
00008     \date       01/07/2008
00009 */
00010 
00011 #include    "IniSection.h"
00012 
00013 IniSection::IniSection(const char *pName)
00014 {
00015     name = pName;
00016     itemVide = new IniItem("");
00017 }
00018 
00019 IniSection::~IniSection()
00020 {
00021     unsigned int    i;
00022 
00023     for(i = 0; i < items.size(); i++)
00024         delete items[i];
00025     items.clear();
00026 
00027     delete itemVide;
00028 }
00029 
00030 void    IniSection::AddItem(const char *pName)
00031 {
00032     items.push_back(new IniItem(pName));
00033 }
00034 
00035 void    IniSection::DelItem(unsigned int iPos)
00036 {
00037     if(iPos < items.size())
00038         items.erase(items.begin() + iPos);
00039 }
00040 
00041 void    IniSection::DelItem(const char *pName)
00042 {
00043     for(unsigned int i = 0; i < items.size(); i++)
00044     {
00045         if(!strcmp(items[i]->GetName(), pName))
00046         {
00047             items.erase(items.begin() + i);
00048             return;
00049         }
00050     }
00051 }
00052 
00053 IniItem *IniSection::GetItem(unsigned int iPos)
00054 {
00055     if(iPos < items.size())
00056         return items[iPos];
00057 
00058     return itemVide;
00059 }
00060 
00061 IniItem *IniSection::GetItem()
00062 {
00063     return items.back();
00064 }
00065 
00066 IniItem *IniSection::GetItem(const char *pName, unsigned int iOcur)
00067 {
00068     unsigned int    ocur = 0, i;
00069 
00070     for(i = 0; i < items.size(); i++)
00071     {
00072         if(!strcmp(items[i]->GetName(), pName))
00073         {
00074             if(ocur == iOcur)
00075                 return items[i];
00076 
00077             ocur++;
00078         }
00079     }
00080 
00081     return itemVide;
00082 }
00083 
00084 const char  *IniSection::GetItemName(unsigned int iPos)
00085 {
00086     if(iPos < items.size())
00087         return items[iPos]->GetName();
00088 
00089     return NULL;
00090 }
00091 
00092 unsigned int    IniSection::GetNbItem(const char *pName)
00093 {
00094     unsigned int    nb = 0, i;
00095 
00096     for(i = 0; i < items.size(); i++)
00097     {
00098         if(!strcmp(items[i]->GetName(), pName))
00099             nb++;
00100     }
00101 
00102     return nb;
00103 }
00104 

Généré le Thu Jun 12 09:12:29 2008 pour A.I.F. par  doxygen 1.3.9.1