Code:
// 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