#pragma once #include "base_head.h" #include "static_array.h" #include "StrArray.h" #define MODULO_CSV_FILE "Ccsv_file" typedef struct Columna_csv_file { int flags;//flags int itex;//indice a texto }Columna_csv_file; typedef struct Fila_csv_file { int flags; Cstatic_array *colum;//valor //metodos----------------------- void inicia(int incre=100) { colum = new Cstatic_array(sizeof(Columna_csv_file)); colum->incremento=incre; } Columna_csv_file* get(int i) { return(Columna_csv_file*) colum->get(i); } Columna_csv_file* add_coun() { Columna_csv_file* c; colum->reserva(); colum->n++; c=(Columna_csv_file*)colum->get(colum->n-1); c->flags=0; c->itex=0; return c; } void del() { delete(colum); } }Fila_csv_file; class C_error; class UTILES_EXPORT Ccsv_file { private: StrArray str; Cstatic_array filas; C_error *er; BOOL b_er; int incre_col; public: Ccsv_file(C_error* err=NULL); ~Ccsv_file(void); //funciones------------------------------------------------------------------- BOOL lee( char *path,char separa=';' ); BOOL guarda( char *path, char separa, BOOL ret_carro=TRUE ); char* get(int fila,int col);//consigue la columna col de la fila fila int n();//numero de filas int n_col(int fil);//numero de columnas de la fila fil int add();//aņade una fila (da el indice de dicha fila) int add(int fila, char *valor);//aņade una columna a la fila int add(int fila, int valor); int add(int fila, double valor); BOOL set(int fila, int col, char* value);//ojo con hacer muchos cambios (la memoria no se libera) BOOL set(int fila, int col, int value); BOOL set(int fila, int col, double value); void borra();//borra todo //funciones auxiliares-------------------------------------------------------- private: Fila_csv_file* get_f(int i); char* busca_salto_linea( char* st ); };