Работа с INI файлами (узнать количество секций)
Драсте. надо узнать количество секций в INI. Для INI с именами секций Item_х, где х - порядковый номер секции, и в каждой секции присутствует параметр name с каким небуть значением, я смог написать вот это:
Код:
TIniFile *config = new TIniFile(GetCurrentDir()+"\\config.ini");
for(int item = 0; item <= 100; item++) {
char *myBuff;
AnsiString strRetVal;
myBuff = new char[100];
memset(myBuff,'\0',100);
itoa(item,myBuff,10);
strRetVal = myBuff;
delete[] myBuff;
AnsiString check=config->ReadString("Item_"+strRetVal, "name", NULL) ;
if (check=="0") {
break;
}
counter=counter+1
}
counter - количество секций (начальное значение counter=0). Но по понятным причинам этот код не универсальный. Кто посоветует что то по лучше?
|
Для работы с ini-файлами рекомендуется использовать специальные функции: GetPrivateProfileString и WritePrivateProfileString.
|
Цитата:
Цитата Busla
Для работы с ini-файлами рекомендуется использовать специальные функции: GetPrivateProfileString и WritePrivateProfileString. »
|
Так как читать\записать значение я знаю, но вот как узнать количество секций в файле, вот в чем задача!
|
TIniFile - если это из Borland то вот это поможет:
Код:
TStrings *sek = new TStringList() ;
TIniFile *config = new TIniFile(GetCurrentDir()+"\\config.ini");
config->WriteString("1_sek","key1","1"); // просто
config->WriteString("2_sek","key1","1"); // тестовые
config->WriteString("3_sek","key1","1"); // данные
config->ReadSections(sek); // считывает названия секций...
Memo1->Lines->AddStrings(sek);
// config->ReadSections()
sek->Free();
|
Alan85, конечно промер нужный, но не для данного случая. Мне надо посчитать количество секций в произвольном файле, тоесть ты сделал какой то ini, а я программно узнал количество секций. Вот что нада!
|
Думал дальше сам догадаешься. Здесь создается произвольный ini файл - я тут же генерил потом считывал, а ты можешь убрать генерацию и сразу считывать. Дальше считывает все названия секций. Это дает нам кодом или
Код:
Memo1->Lines->Count;
получить количество секций
|
Alan85, ты только что посвятил человека, который с С++ знакомый 4 дня:)
|
Время: 07:24.
© OSzone.net 2001-