80 lines
1.8 KiB
C++
80 lines
1.8 KiB
C++
#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 );
|
|
};
|