76 lines
1.7 KiB
C++
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 |