Olivia_v2017/Olivia/olv_csv.cpp

76 lines
1.7 KiB
C++

#include "stdafx.h"
#ifdef OLIVIA_COMPILA
#include "olv_csv.h"
#include "_error.h"
/**
* @file olv_csv.cpp
* Archivo de implementaciones para manejo de archivos csv para lectura y escritura
*/
Colv_csv::Colv_csv(void)
{
file=INVALID_HANDLE_VALUE;
nb=0;
}
Colv_csv::~Colv_csv(void)
{
if(file!=INVALID_HANDLE_VALUE)
CloseHandle(file);
}
//*************************************************************************************
BOOL Colv_csv::inicia(char *nom_file)
{
file = CreateFile(nom_file, GENERIC_WRITE, 0, NULL,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
if (file == INVALID_HANDLE_VALUE)
return FALSE;
return TRUE;
}
//*************************************************************************************
void Colv_csv::cierra()
{
if(file!=INVALID_HANDLE_VALUE)
CloseHandle(file);
file=INVALID_HANDLE_VALUE;
}
//*************************************************************************************
BOOL Colv_csv::escribe(char *fila)
{
//Convierte a w_char para escribir en codificación utf-16
wchar_t wstr[512];
int size,sw;
C_error err;
size = MultiByteToWideChar(CP_UTF8,MB_ERR_INVALID_CHARS,fila,(int)strlen(fila)+1,wstr,512);
if(size==0)
{
err.pon_win("OLV_SHP");
sw=(int)wcslen(wstr)+1;
}
if ( ! WriteFile(file, wstr ,size*sizeof(wchar_t),&nb,NULL))
return FALSE;
return TRUE;
}
//*************************************************************************************
BOOL Colv_csv::lee(char *file_name)
{
file = CreateFile(file_name, GENERIC_READ, 0, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
char buff[1024];
int i=1;
ReadFile(file,buff,1024,&nb,0);
CloseHandle(file);
file=INVALID_HANDLE_VALUE;
return TRUE;
}
//*************************************************************************************
#endif