9511_project01

project 1 for algorithms & programming I (9511) prof. Cardozo
Index Commits Files Refs README
commit 855793b8f71aa689947e2a57769e3c96fcafe115
parent cd0dd48cdd5dd3b537dc6aa2a5294982af325432
Author: klewer-martin <martin.cachari@gmail.com>
Date:   Tue,  9 Feb 2021 02:41:15 -0300

Deleted old junk;

Diffstat:
Mread_file.c | 77-----------------------------------------------------------------------------
Dread_file2.c | 3---
Dread_file2.h | 21---------------------
Dreadlines.c | 221-------------------------------------------------------------------------------
Dreadlines.h | 30------------------------------
5 files changed, 0 insertions(+), 352 deletions(-)
diff --git a/read_file.c b/read_file.c
@@ -71,80 +71,3 @@ status_t clean_buffer(char *buffer, size_t size)
     
     return OK;
 }
-
-
-
-/*
-//    Lee de el archivo de entrada linea por linea y va guardando las 
-//    lineas en buff1 hasta que se terminen;
-    for(line = 0; fgets(buff1, sizeof(buff1), src) != NULL; line++)
-    {
-//    Este 'if' es para evitar la primer linea que no contiene ningun tipo de dato;
-        if(line != 0) {
-//            Recorre el buff1 separando los datos de acuerdo a si es el codigo de
-//            un pais, una fecha o el numero de infectados;
-            for(i = 0, j = 0, data = PAIS; buff1[i] != '\0'; i++)
-            {
-//                Si encuentra una coma cambia el tipo de dato;
-                if((buff1[i] == ','))
-                {
-//                    Saltea la coma;                    
-                    i++;
-
-//                    De acuerdo al tipo de dato que se guardo hasta llegar a la
-//                    coma va a guardarlo de distinta manera, ej: si el dato que
-//                    se guardo en buff2 era el codigo de un PAIS, entonces lo 
-//                    guarda en la variable country, si el tipo de dato que se 
-//                    guardo en buff2 era una fecha entonces lo guarda en date, etc.
-//                    Solo puede ser PAIS o DATE, ya que INFECTADOS seria cuando
-//                    ecuentra un caracter de nueva linea;
-                    switch(data) 
-                    {
-                        case PAIS: *(country) = atoi(buff2); break;
-                        case DATE: *(date) = atol(buff2); j++; break;
-                    }
-
-
-//                    Como encontro una coma entonces el tipo de dato cambia;
-                    data++;
-
-//                    j vale cero porque es el indice de el buffer en el que se van
-//                    guardando los datos;
-                    j = 0;
-
-//                    Se limpia el buffer ya que se va a volver a utilizar;
-                    clean_buffer(buff2, SIZE_OF_BUFF2);
-
-
-//                Si en lugar de una coma se encuentra un caracter de nueva line 
-//                entonces significa que esta parado en el ultimo dato
-                } else if (buff1[i] == '\n') {
-
-//                    Si estamos parados en el ultimo dato y no es INFECTED,
-//                    entonces la variable datos no se incremento tres veces, por
-//                    lo cual se supone que falta un dato, devolviendo un codigo de
-//                    error;
-                    if(data != INFECTED) 
-                        return ERROR_DATA_ON_FILE_MISSING;
-
-//                    Si esta todo bien entonces el dato vuelve a ser PAIS que es 
-//                    el primer dato de el archivo de entrada
-                    data = PAIS;
-                    *(infected) = atol(buff2);
-                    clean_buffer(buff2, SIZE_OF_BUFF2);
-                }
-
-                switch(data) 
-                {
-                    case PAIS: buff2[i] = buff1[i];    break;
-                    case DATE: buff2[j] = buff1[i]; j++; break;
-                    case INFECTED: buff2[j] = buff1[i]; j++; break;
-                }
-            }
-
-        }
-    }
-
-    return OK;
-
-*/
diff --git a/read_file2.c b/read_file2.c
@@ -1,3 +0,0 @@
-#include "read_file2.h"
-
-
diff --git a/read_file2.h b/read_file2.h
@@ -1,21 +0,0 @@
-#ifndef READLINES_H
-#define READLINES_H
-
-#include "main.h"
-#include "load_country_codes.h"
-
-typedef enum {
-    PAIS,
-    DATE,
-    INFECTED
-} data_t;
-
-status_t read_file(FILE *src, u_long *country, u_long *date, u_long *infected);
-
-status_t fprintf_date(FILE *dest, size_t data);
-status_t fprintf_infected(FILE *dest, size_t data, char newline);
-status_t clean_buffer(char *buffer, size_t size);
-status_t time_translator(time_t unix_time, char *res, size_t size, const char *format); 
-status_t fprintf_country(FILE *dest, size_t country_code, char country_codes[COUNTRIES_NUMBER][ARRAYS_LENGTH]);
-
-#endif
diff --git a/readlines.c b/readlines.c
@@ -1,221 +0,0 @@
-//    Lee el archivo de entrada y va separando los datos mientras va leyendo linea
-//    por linea, y los va imprimiendo en pantalla
-
-#include "readlines.h"
-
-const char formato_de_la_fecha[] = "%d %b %Y";
-
-status_t readlines(char *src, char *dest, char country_codes[COUNTRIES_NUMBER][ARRAYS_LENGTH])
-{
-    size_t line, i, j;
-    status_t st;
-
-//    Puntero para el archivo de entrada y de salida respectivamente;    
-    FILE *fpi; 
-    FILE *fpo;
-
-
-    char buff1[SIZE_OF_BUFF1];
-    char buff2[SIZE_OF_BUFF2];
-
-    clean_buffer(buff1, SIZE_OF_BUFF1);
-    clean_buffer(buff2, SIZE_OF_BUFF2);
-
-//    Esta variable es para saber de que tipo de dato estamos hablando, si es un
-//    codigo de pais, una fecha o el numero de infectados;
-    data_t data;
-
-    unsigned long country;
-    unsigned long date;
-    unsigned long infected;
-
-    unsigned long prev_country;
-
-    char time_s[TIME_MAX_DIGITS];
-    unsigned int month;
-    unsigned int prev_month;
-
-//    Inizializamos la variable country en cero;
-    prev_country = 0; 
-    prev_month = -1;
-    unsigned long infected_monthly;
-    
-//    Abre el archivo de entrada en modo lectura si por algun motivo no se puede
-//    abrir devuelve un codigo de error;
-    if((fpi = fopen(src, "r")) == NULL)
-            return ERROR_READING_FILE;
-
-    if((fpo = fopen(dest, "w")) == NULL)
-            return ERROR_READING_FILE;
-
-//    Lee de el archivo de entrada linea por linea y va guardando las 
-//    lineas en buff1 hasta que se terminen;
-    for(line = 0; fgets(buff1, sizeof(buff1), fpi) != NULL; line++)
-    {
-//    Este 'if' es para evitar la primer linea que no contiene ningun tipo de dato;
-        if(line != 0) {
-//            Recorre el buff1 separando los datos de acuerdo a si es el codigo de
-//            un pais, una fecha o el numero de infectados;
-            for(i = 0, j = 0, data = PAIS; buff1[i] != '\0'; i++)
-            {
-//                Si encuentra una coma cambia el tipo de dato;
-                if((buff1[i] == ','))
-                {
-//                    Saltea la coma;                    
-                    i++;
-
-//                    De acuerdo al tipo de dato que se guardo hasta llegar a la
-//                    coma va a guardarlo de distinta manera, ej: si el dato que
-//                    se guardo en buff2 era el codigo de un PAIS, entonces lo 
-//                    guarda en la variable country, si el tipo de dato que se 
-//                    guardo en buff2 era una fecha entonces lo guarda en date, etc.
-//                    Solo puede ser PAIS o DATE, ya que INFECTADOS seria cuando
-//                    ecuentra un caracter de nueva linea;
-                    switch(data) 
-                    {
-                        case PAIS: country = atoi(buff2); break;
-                        case DATE: date = atol(buff2); j++; break;
-                    }
-
-
-//                    Como encontro una coma entonces el tipo de dato cambia;
-                    data++;
-
-//                    j vale cero porque es el indice de el buffer en el que se van
-//                    guardando los datos;
-                    j = 0;
-
-//                    Se limpia el buffer ya que se va a volver a utilizar;
-                    clean_buffer(buff2, SIZE_OF_BUFF2);
-
-
-//                Si en lugar de una coma se encuentra un caracter de nueva line 
-//                entonces significa que esta parado en el ultimo dato
-                } else if (buff1[i] == '\n') {
-
-//                    Si estamos parados en el ultimo dato y no es INFECTED,
-//                    entonces la variable datos no se incremento tres veces, por
-//                    lo cual se supone que falta un dato, devolviendo un codigo de
-//                    error;
-                    if(data != INFECTED) 
-                        return ERROR_DATA_ON_FILE_MISSING;
-
-//                    Si esta todo bien entonces el dato vuelve a ser PAIS que es 
-//                    el primer dato de el archivo de entrada
-                    data = PAIS;
-                    infected = atol(buff2);
-                    clean_buffer(buff2, SIZE_OF_BUFF2);
-                }
-
-                switch(data) 
-                {
-                    case PAIS: buff2[i] = buff1[i];    break;
-                    case DATE: buff2[j] = buff1[i]; j++; break;
-                    case INFECTED: buff2[j] = buff1[i]; j++; break;
-                }
-            }
-
-
-//            Imprime en el archivo de salida de acuerdo a un formato especifico,
-//            los valores obtenidos de el archivo de entrada;
-//            print_to_file(country, date, infected);
-
-            time_translator(date, time_s, sizeof(time_s), "%m");
-            month = atoi(time_s);
-            printf("%d\n", month);
-
-            if(prev_country == 0 && prev_month == -1) {
-                prev_country = country;
-                prev_month = month;
-            }
-            
-//            Imprime la suma de infectados por mes cada vez que cambia el pais;
-            if(country == prev_country && month == prev_month) {
-                infected_monthly += infected;
-            }    
-            else if(country != prev_country) {
-                fprintf(fpo, "Infectados por mes: %lu\n\n", infected_monthly);    
-                prev_country = country;
-            }
-
-//            Imprime datos segun el archivo de entrada;
-            fprintf_country(fpo, country, country_codes);
-            fprintf_date(fpo, date);
-            fprintf_infected(fpo, infected, '\n');
-
-        }
-    }
-
-    fclose(fpi);
-    fclose(fpo);
-    return OK;
-}
-
-
-status_t fprintf_country(FILE *dest, size_t country_code, char country_codes[COUNTRIES_NUMBER][ARRAYS_LENGTH])
-{
-    if((country_codes == NULL) || (dest == NULL))
-        return ERROR_NULL_POINTER;
-
-    fprintf(dest, COUNTRY_PROMPT": %s\n", country_codes[country_code]);
-    return OK;
-}
-
-status_t fprintf_date(FILE *dest, size_t date)
-{
-    char time_c[TIME_MAX_DIGITS];
-    status_t st;
-
-    if(dest == NULL)
-        return ERROR_NULL_POINTER;
-
-    if((st = time_translator(date, time_c, sizeof(time_c), formato_de_la_fecha)) != OK)
-        return st;
-
-    fprintf(dest, "Fecha: %s\n", time_c);
-    return OK;
-}
-
-status_t fprintf_infected(FILE *dest, size_t infected, char newline)
-{
-    if(dest == NULL)
-        return ERROR_NULL_POINTER;
-
-    fprintf(dest, "Infectados: %lu\n%c", infected, newline);
-    return OK;
-}
-
-status_t clean_buffer(char *buffer, size_t size)
-{
-    if(buffer == NULL)
-        return ERROR_NULL_POINTER;
-
-    size_t i;
-    for(i = 0; i < size; i++)
-        buffer[i] = '\0';
-    
-    return OK;
-}
-
-
-
-//    Traduce de la fecha de formato unix a format y lo guarda en res como
-//    como una cadena de caracteres;
-status_t time_translator(time_t unix_time, char *res, size_t size, const char *format) 
-{
-    if(res == NULL || format == NULL)
-        return ERROR_NULL_POINTER;
-
-    
-    struct tm *tmp = gmtime(&unix_time);
-
-    if (strftime(res, size, format, tmp) == 0) {
-        (void) fprintf(stderr,  "strftime(3): cannot format supplied "
-                                "date/time into buffer of size %u "
-                                "using: '%s'\n",
-                                (unsigned int)sizeof(res), format);
-        return ERROR_ALLOCATING_TIME;
-    }
-    return OK;
-}
-
diff --git a/readlines.h b/readlines.h
@@ -1,30 +0,0 @@
-#ifndef READLINES_H
-#define READLINES_H
-
-#include "main.h"
-#include "load_country_codes.h"
-
-#define COUNTRY_PROMPT "Pais"
-
-#define SIZE_OF_BUFF1    32
-#define SIZE_OF_BUFF2    32    
-
-#define INITIAL_SIZE 1000
-#define TIME_MAX_DIGITS 1000
-
-extern const char formato_de_la_fecha[];
-
-typedef enum {
-    PAIS,
-    DATE,
-    INFECTED
-} data_t;
-
-status_t readlines(char *src, char *dest, char country_codes[COUNTRIES_NUMBER][ARRAYS_LENGTH]);
-status_t fprintf_date(FILE *dest, size_t data);
-status_t fprintf_infected(FILE *dest, size_t data, char newline);
-status_t clean_buffer(char *buffer, size_t size);
-status_t time_translator(time_t unix_time, char *res, size_t size, const char *format); 
-status_t fprintf_country(FILE *dest, size_t country_code, char country_codes[COUNTRIES_NUMBER][ARRAYS_LENGTH]);
-
-#endif