#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