87 lines
2.1 KiB
C
87 lines
2.1 KiB
C
#include "file_handler.h"
|
|
|
|
int loadListFromCSV(char *_filename, list_t *_list)
|
|
{
|
|
FILE *f_in = fopen(_filename, "r");
|
|
if (f_in == NULL)
|
|
{
|
|
// doprasit
|
|
exit(-1);
|
|
}
|
|
|
|
char *buffer = NULL;
|
|
size_t buffer_size = 0;
|
|
|
|
int load_sum = 0;
|
|
|
|
char _name[128], _surname[128];
|
|
uint32_t _department;
|
|
uint16_t _uuid;
|
|
time_t _last_event, _total;
|
|
BYTE _avail;
|
|
while (-1 != getline(&buffer, &buffer_size, f_in))
|
|
{
|
|
if (sscanf(buffer, "%hu,%127[^,],%127[^,],%u,%ld,%ld,%hhu", &_uuid, _name, _surname, &_department, &_last_event, &_total, &_avail) == 7)
|
|
{
|
|
loadPersonToList(_list, _uuid, _name, _surname, _department, _last_event, _total, _avail);
|
|
load_sum++;
|
|
}
|
|
else
|
|
{
|
|
// vstupni databaze je vadna
|
|
exit(-1);
|
|
}
|
|
}
|
|
free(buffer);
|
|
fclose(f_in);
|
|
return load_sum;
|
|
}
|
|
|
|
int saveListToCSV(char *_filename, list_t *_list)
|
|
{
|
|
FILE *f_out = fopen(_filename, "w");
|
|
if (f_out == NULL)
|
|
{
|
|
// doprasit
|
|
exit(-1);
|
|
}
|
|
|
|
node_t *cursor = _list->head;
|
|
while (cursor != NULL)
|
|
{
|
|
if (cursor->user.uuid != 0)
|
|
{
|
|
fprintf(f_out, "%hu,%s,%s,%u,%ld,%ld,%hhu\n", cursor->user.uuid, cursor->user.name, cursor->user.surname, cursor->user.department, cursor->user.last_time_event, cursor->user.total, cursor->user.available);
|
|
}
|
|
cursor = cursor->next;
|
|
}
|
|
|
|
int save_sum = 0;
|
|
|
|
fclose(f_out);
|
|
return save_sum;
|
|
}
|
|
|
|
int exportPersonInfo(node_t *_person)
|
|
{
|
|
char filename[64];
|
|
sprintf(filename, "person_uuid%d.txt", _person->user.uuid);
|
|
|
|
FILE *f_out = fopen(filename, "w");
|
|
if (f_out == NULL)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
char last_time_event_str[64];
|
|
printDateAndTimeInString(_person->user.last_time_event, last_time_event_str);
|
|
|
|
char total_time_str[64];
|
|
printTimeInString(_person->user.total, total_time_str);
|
|
|
|
fprintf(f_out, "NAME: %s\nSURNAME: %s\nDEPARTMENT: %d\nLAST TIME EVENT: %s\nTOTAL TIME: %s\n", _person->user.name, _person->user.surname, _person->user.department, last_time_event_str, total_time_str);
|
|
|
|
fclose(f_out);
|
|
|
|
return 1;
|
|
} |