#ifndef _INIFILE_H #define _INIFILE_H /** * @doc INIFILE * * @module inifile.c - Librería de acceso a ficheros de configuración | * Esta librería permite acceder a los ficheros de configuración estilo Windows de una * manera portable. * Creado con autoduck /rhtml /f html.fmt /o inifile.html contents.d inifile.h * * @index | INIFILE */ /** @const Longitud máxima en caracteres del nombre de una sección */ #define MAX_SECTIONLEN 128 /** @const Longitud máxima en caracteres del nombre de una entrada */ #define MAX_ENTRYLEN 128 /** @const Longitud máxima en caracteres del valor de una entrada */ #define MAX_VALUELEN 2048 /** * @func Elimina los espacios en blanco del principio de la cadena * @parm Cadena a tratar * @parm Caracteres que se consideran "espacios en blanco" * @rdesc >0 Si se eliminó algún caracter * @xref , */ int strtriml(char* szText, const char* szTrimChars); /** * @func Elimina los espacios en blanco del final de la cadena * @parm Cadena a tratar * @parm Caracteres que se consideran "espacios en blanco" * @rdesc >0 Si se eliminó algún caracter * @xref , */ int strtrimr(char* szText, const char* szTrimChars); /** * @func Elimina los espacios en blanco al principio y al final de la cadena * @parm Cadena a tratar * @parm Caracteres que se consideran "espacios en blanco" * @rdesc >0 Si se eliminó algún caracter * @xref , */ int strtrim(char* szText, const char* szTrimChars); /** * @func Devuelve una cadena almacenada en el fichero de configuración * @parm Nombre del fichero * @parm Nombre de la sección que contiene la entrada deseada, o NULL para * una lista de todas las secciones del fichero, separada por nulos y con dos nulos como * terminador de lista. * @parm Nombre de la entrada que contiene el valor deseado o NULL para una * lista de entradas de la sección de este fichero, separadas por nulos y con dos nulos como * terminador de la lista. * @parm Cadena donde almacenar el resultado * @parm Longitud máxima de la cadena (incluyendo nulo) * @parm Valor a poner en szResult si no se encontró la entrada dada * @rdesc Si

es nulo, el número de caracteres necesarios para almacenar todas * las secciones del fichero (sin corchetes). * @rdesc Si

es nulo, el número de caracteres necesarios para almacenar todas * las entradas de la sección dada del fichero. * @rdesc En otro caso el número de caracteres del valor de la entrada para la sección y ficheros * solicitados (0 si no se encontró esa entrada, sección o fichero) * @xref , */ int INI_GetProfileString(const char* szFileName, const char* szSectionName, const char* szEntryName, char* szResult, const int nLen, const char* szDefault); /** * @func Devuelve un entero almacenado en el fichero de configuración * @parm Nombre del fichero * @parm Nombre de la sección que contiene la entrada deseada, o NULL para * una lista de todas las secciones del fichero, separada por nulos y con dos nulos como * terminador de lista. * @parm Nombre de la entrada que contiene el valor deseado o NULL para una * lista de entradas de la sección de este fichero, separadas por nulos y con dos nulos como * terminador de la lista. * @parm Valor a devolver por defecto * @rdesc Valor entero de la entrada de la sección y fichero dados. Si el valor no es * entero o la entradada, sección o fichero no existen, devuelve el valor pasado por defecto. */ int INI_GetProfileInt(const char* szFileName, const char* szSectionName, const char* szEntryName, int nDefault); /** * @func Devuelve un elemento cadena de una lista almacenada en el fichero de configuración * @parm Nombre del fichero * @parm Nombre de la sección que contiene la entrada deseada * @parm Nombre de la entrada que contiene el valor deseado * @parm Cadena donde almacenar el resultado. Contiene el elemento nIndex-ésimo de * una lista de valores separados por comas en la entrada, sección y fichero dados. * Si el elemento, la entrada, la sección o el fichero no existen, valdrá szDefault. * @parm Longitud máxima de la cadena (incluyendo nulo) * @parm Valor a poner en szResult si no se encontró la entrada dada * @parm Elemento a devolver de la lista (el primer elemento es el n. 0) */ int INI_GetProfileListItemString(const char* szFileName, const char* szSectionName, const char* szEntryName, char* szResult, int nLen, const char* szDefault, int nIndex); /** * @func Devuelve Un elemento entero de una lista almacenada en el fichero de configuración * @parm szFileName Nombre del fichero * @parm szSectionName Nombre de la sección que contiene la entrada deseada * @parm szEntryName Nombre de la entrada que contiene el valor deseado * @parm nDefault Valor a devolver por defecto * @parm nIndex Elemento a devolver de la lista (el primer elemento es el n. 0) * @rdesc Elemento nIndex-ésimo de una lista de valores separados por comas en la entrada, * sección y fichero dados. Si el elemento, la entrada, la sección o el fichero no existen o * el valor no es de tipo numérico, devuelve nDefault */ int INI_GetProfileListItemInt(const char* szFileName, const char* szSectionName, const char* szEntryName, int nDefault, int nIndex); #endif