#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