00001
00002
00003
00004
00005
00006
00007
00008
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