// not complete; just an example
// tested quickly; may have errors
TEXT ini_t1 {
strings = 256;
}
var ini_nLinesC = 0;
var ini_bSect = 0;
STRING ini_sValue[256];
STRING ini_s1[256];
STRING ini_s2[256];
STRING ini_s3[256];
var ini_n1 = 0;
var ini_n2 = 0;
function inif_get(_sSection, _sKey) {
ini_n1 = 0;
str_cpy(ini_sValue, "");
ini_bSect = 0;
while(ini_n1 < ini_nLinesC) {
if (str_stri(ini_t1.string[ini_n1], "[") == 1) {
if (ini_bSect) {
return(0);
}
str_cpy(ini_s1, ini_t1.string[ini_n1]);
str_clip(ini_s1, 1);
str_trunc(ini_s1, 1);
if (str_cmpi(_sSection, ini_s1)) {
ini_bSect = 1;
}
} else {
if (!ini_bSect) { goto(next1); }
ini_n2 = str_stri(ini_t1.string[ini_n1], "=");
if (ini_n2 == 0) { goto(next1); }
str_cpy(ini_s2, ini_t1.string[ini_n1]);
str_cpy(ini_s3, ini_s2);
str_trunc(ini_s2, (str_len(ini_s2) - ini_n2) + 1);
if (str_cmpi(_sKey, ini_s2)) {
str_clip(ini_s3, ini_n2);
str_cpy(ini_sValue, ini_s3);
return(1);
}
}
next1:
ini_n1 += 1;
}
return(0);
}
function inif_load(_sFile) {
ini_nLinesC = txt_load(ini_t1, _sFile);
return(ini_nLinesC);
}
//...
inif_load("questions.ini");
inif_get("topic2", "subject");
// do something with ini_sValue