mod_leeIni (Lee y modifica archivos .ini)

Started by Milton884, May 19, 2011, 07:38:43 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

panreyes


Y aquí otra versión en la que cargo el INI en memoria, evitando abrir el fichero INI múltiples veces:

Global
string loaded_ini_data;
End


Function load_ini(string ruta);
Begin
loaded_ini_data=file(ruta);
end


Function string read_ini(string seccion,string clave);
Private
string datos;
int pos_seccion;
int pos_siguiente_seccion;
int pos_igual;
int pos_principio_clave;
int pos_final_clave;
Begin
if((pos_seccion=find(loaded_ini_data,"["+seccion+"]"))>-1) //buscamos el principio de la sección
pos_siguiente_seccion=find(loaded_ini_data,""+chr(10)+"[",pos_seccion); //averiguamos dónde empieza la siguiente sección
if((pos_principio_clave=find(loaded_ini_data,""+clave+"=",pos_seccion))>-1) //buscamos la clave siguiente con ese nombre
if(pos_siguiente_seccion==-1 or pos_principio_clave<pos_siguiente_seccion) //que se encuentre en esa sección
pos_final_clave=find(loaded_ini_data,chr(13),pos_principio_clave); //msdos, \r
pos_principio_clave+=len(clave)+1; //detrás del =
datos=substr(loaded_ini_data,pos_principio_clave,pos_final_clave-pos_principio_clave);
end
end
end

return datos;
end