#pragma once #include "base_head.h" #include "StrArray.h" #include "static_array.h" #define INI_FILE_FLAGS_VACIO 0x0001 #define MODULO_INI_FILE "Cini_file" //estructuras necesarias------------------------------------------------------------------ typedef struct Ini_file_props { short flags; int p;//propiedad int v;//valor }Ini_file_props; typedef struct Ini_file_grupo//cabecera base de la cumunicación { int n; //indice a nombre short flags; Cstatic_array prop; Ini_file_grupo() { inicia(); n=0; } void inicia() { prop.n=prop.m=0; prop.buf=NULL; prop.z=sizeof(Ini_file_props); prop.incremento=100; } Ini_file_props* get(int i)//da la propiedad i { return (Ini_file_props*) prop.get(i); } Ini_file_props* set_coun()//reserva para una propiedad mas y da el puntero { prop.reserva(); prop.n++; return (Ini_file_props*) &prop.buf[prop.z*(prop.n-1)]; } }Ini_file_grupo; //------------------------------------------------------------------------------------------------------------ class C_error; class UTILES_EXPORT Cini_file { //variables-------------------------- private: StrArray str; Cstatic_array grupos; BOOL borra_error; public: C_error *er; Cini_file(C_error* err=NULL); ~Cini_file(void); //funciones-------------------------- BOOL lee(char *path_);//lee archivo ini y lo carga en memoria int get_grupo(char* gr); int geti_valor(int gr,char *pro);//devuelve el indice del str valor //funciones que dan el valor-------------- char* get(int gr,char *pro);// valor en forma de char* int get(int gr,char *pro, int def); double get(int gr,char *pro, double def); char* get( int gr,char *pro, char *def); void dame_valor( int gr,char *pro, char* dst,char *def); //funciones de escritura----------------- void borra(); BOOL guarda(char *path);//guarda ini cargado en memoria en un archivo; int add_grupo(char *gr);//añade un grupo nuevo y da el indice int add(int gr,char *pro,char *val);//añade valor de propiedad //sobrecarga escritura----------------- int add(int gr,char *pro,int val);//añade valor de propiedad int add(int gr,char *pro,double val);//añade valor de propiedad //funciones aux------------------------ private: //funciones ayuda para leer char* busca(char *st,char c);//busca en str el char c o el nulo char* buscamos_grupo(char *st);//busca el siguiente grupo en str char* busca_prop(char* st); Ini_file_grupo* set_coun(); };