#include <Ini.h>
Fonctions membres publiques | |
| Ini (const char *pName) | |
| ~Ini () | |
| void | Load () |
| Charge le fichier à la suite. | |
| void | Save () |
| Sauve les données. | |
| void | AddSection (const char *pName) |
| Ajoute une section. | |
| void | DelSection (unsigned int iPos) |
| Supprime une section. | |
| void | DelSection (const char *pName) |
| Supprime une section. | |
| IniSection * | GetSection (unsigned int iPos) |
| Retourne une section par sa position. | |
| IniSection * | GetSection (const char *pName, unsigned int iOcur=0) |
| Retourne une section par son nom. | |
| const char * | GetSectionName (unsigned int iPos) |
| Retourne le nom d'une section. | |
| unsigned int | GetNbSection () |
| Retourne le nombre de section. | |
| unsigned int | GetNbSection (const char *pName) |
| Retourne le nombre de section. | |
| unsigned int | GetNbInstance () |
| Retourne le nombre d'instance. | |
| const char * | GetName () |
| Retourne le nom du fichier. | |
| const char * | SetName (const char *pName) |
| Définie le nom du fichier. | |
Définition à la ligne 29 du fichier Ini.h.
|
|
Charge le fichier ini en mémoire.
Définition à la ligne 16 du fichier Ini.cpp. Références MutexInit(). 00017 {
00018 if(!iniInstance)
00019 MutexInit(&iniMutex);
00020
00021 iniInstance++;
00022
00023 fileName = pName;
00024 sectionVide = new IniSection("");
00025 }
|
|
|
Libere proprement la mémoire, ne sauve pas dans le fichier.
Définition à la ligne 27 du fichier Ini.cpp. Références MutexStop(). 00028 {
00029 unsigned int i;
00030
00031 for(i = 0; i < sections.size(); i++)
00032 delete sections[i];
00033 sections.clear();
00034
00035 delete sectionVide;
00036
00037 iniInstance--;
00038
00039 if(!iniInstance)
00040 MutexStop(&iniMutex);
00041 }
|
|
|
Ajoute une section.
Définition à la ligne 155 du fichier Ini.cpp. Référencé par Load(). 00156 {
00157 sections.push_back(new IniSection(pName));
00158 }
|
|
|
Supprime la section de nom pName.
Définition à la ligne 166 du fichier Ini.cpp. Références GetName(). 00167 {
00168 for(unsigned int i = 0; i < sections.size(); i++)
00169 {
00170 if(!strcmp(sections[i]->GetName(), pName))
00171 {
00172 sections.erase(sections.begin() + i);
00173 return;
00174 }
00175 }
00176 }
|
|
|
Supprime la section étant à la position iPos.
Définition à la ligne 160 du fichier Ini.cpp. 00161 {
00162 if(iPos < sections.size())
00163 sections.erase(sections.begin() + iPos);
00164 }
|
|
|
Retourne le nom le nom du fichier ini name.
Définition à la ligne 136 du fichier Ini.h. Référencé par DelSection(), GetNbSection(), GetSection(), et Save(). 00137 {
00138 return fileName.data();
00139 };
|
|
|
Retourne le nombre d'instance de la class (pour multitache).
Définition à la ligne 126 du fichier Ini.h. 00127 {
00128 return iniInstance;
00129 };
|
|
|
Retourne le nombre de section ayant pour nom pName contenu dans le fichier ini.
Définition à la ligne 212 du fichier Ini.cpp. Références GetName(). 00213 {
00214 unsigned int nb = 0, i;
00215
00216 for(i = 0; i < sections.size(); i++)
00217 {
00218 if(!strcmp(sections[i]->GetName(), pName))
00219 nb++;
00220 }
00221
00222 return nb;
00223 }
|
|
|
Retourne le nombre de section contenu dans le fichier ini.
Définition à la ligne 109 du fichier Ini.h. 00110 {
00111 return sections.size();
00112 };
|
|
||||||||||||
|
Permet l'acces à la section ayant le nom pName.
Définition à la ligne 186 du fichier Ini.cpp. Références GetName(). 00187 {
00188 unsigned int ocur = 0, i;
00189
00190 for(i = 0; i < sections.size(); i++)
00191 {
00192 if(!strcmp(sections[i]->GetName(), pName))
00193 {
00194 if(ocur == iOcur)
00195 return sections[i];
00196
00197 ocur++;
00198 }
00199 }
00200
00201 return sectionVide;
00202 }
|
|
|
Permet l'acces à la section étant à la position iPos.
Définition à la ligne 178 du fichier Ini.cpp. Référencé par Langage::Langage(). 00179 {
00180 if(iPos < sections.size())
00181 return sections[iPos];
00182
00183 return sectionVide;
00184 }
|
|
|
Retourne le nom de la section étant à la position iPos.
Définition à la ligne 204 du fichier Ini.cpp. Références IniSection::GetName(). 00205 {
00206 if(iPos < sections.size())
00207 return sections[iPos]->GetName();
00208
00209 return NULL;
00210 };
|
|
|
Charge le fichier à la suite des données actuelles. Définition à la ligne 43 du fichier Ini.cpp. Références IniSection::AddItem(), AddSection(), CATCH, IniSection::GetItem(), IsAlphaNum(), MutexLock(), MutexUnLock(), IniItem::SetData(), THROW, et TRY. 00044 {
00045 FILE *fichier;
00046 char data[INI_BUFFERSIZE];
00047 char *p;
00048 char c;
00049 int m;
00050 TRY
00051
00052 MutexLock(&iniMutex);
00053 p = data;
00054 m = 0;
00055
00056 fichier = fopen(fileName.data(), "r");
00057 if(!fichier)
00058 THROW(ERROR_C_DATA_FILE)
00059
00060 while(!feof(fichier))
00061 {
00062 c = fgetc(fichier);
00063 if(c)
00064 {
00065 *p = '\0';
00066
00067 switch(c)
00068 {
00069 case '#' :
00070 case ';' :
00071 if(m == 0)
00072 m = 10;
00073 else
00074 *p++ = c;
00075 break;
00076 case '[' :
00077 if(m == 0)
00078 p = data;
00079 else
00080 *p++ = c;
00081 break;
00082 case ']' :
00083 if(m == 0)
00084 {
00085 if(IsAlphaNum(data))
00086 AddSection(data);
00087
00088 p = data;
00089 }
00090 else
00091 *p++ = c;
00092 break;
00093 case '=' :
00094 if(m == 0)
00095 {
00096 if(IsAlphaNum(data) && sections.size())
00097 {
00098 sections.back()->AddItem(data);
00099 m = 1;
00100 p = data;
00101 }
00102 }
00103 else
00104 *p++ = c;
00105 break;
00106 case '\0':
00107 case '\n':
00108 case '\r':
00109 if(m == 1)
00110 sections.back()->GetItem()->SetData(data);
00111
00112 m = 0;
00113 p = data;
00114 break;
00115 default :
00116 *p++ = c;
00117 }
00118 }
00119 }
00120
00121 fclose(fichier);
00122
00123 MutexUnLock(&iniMutex);
00124
00125 CATCH
00126 }
|
|
|
Sauve toutes les données dans le fichier ini. Définition à la ligne 128 du fichier Ini.cpp. Références CATCH, GetName(), MutexLock(), MutexUnLock(), THROW, et TRY. 00129 {
00130 FILE *fichier;
00131 unsigned int i, j;
00132 TRY
00133
00134 MutexLock(&iniMutex);
00135
00136 fichier = fopen(fileName.data(), "w");
00137 if(fichier)
00138 THROW(ERROR_C_DATA_FILE)
00139
00140 for(i = 0; i < sections.size(); i++)
00141 {
00142 fprintf(fichier, "[%s]\n", sections[i]->GetName());
00143
00144 for(j = 0; j < sections[i]->GetNbItem(); j++)
00145 fprintf(fichier, "%s=%s\n", sections[i]->GetItem(j)->GetName(), sections[i]->GetItem(j)->GetData());
00146 }
00147
00148 fclose(fichier);
00149
00150 MutexUnLock(&iniMutex);
00151
00152 CATCH
00153 }
|
|
|
Définie le nom du fichier ini name.
Définition à la ligne 147 du fichier Ini.h. 00148 {
00149 fileName = pName;
00150 return fileName.data();
00151 };
|
1.3.9.1