9511_project01

project 1 for algorithms & programming I (9511) prof. Cardozo
Index Commits Files Refs README
commit f9b27cf362576770aa0c2f6663f2a1d77664d744
parent 3e543c6377d96162ac9de31ea729aaf5b391f2ae
Author: klewer-martin <martin.cachari@gmail.com>
Date:   Wed,  3 Feb 2021 14:16:25 -0300

Added more error codes, and print on error, also deleted time_translator.c and
time_translator.h which were old test programs that are not in use anymore;

Diffstat:
Minput.csv | 2+-
Mmacros.h | 17++++++++++++-----
Mmain.c | 1+
Mreadlines.c | 16+++++++++++-----
Dtime_translator.c | 38--------------------------------------
Dtime_translator.h | 6------
6 files changed, 25 insertions(+), 55 deletions(-)
diff --git a/input.csv b/input.csv
@@ -1,5 +1,5 @@
 PAIS, FECHA, INFECTADOS
-32,1577880000
+32,1577880000,2342
 32,1578657600,4923
 32,1579089600,9324
 170,1577880000,8234
diff --git a/macros.h b/macros.h
@@ -19,17 +19,24 @@
                                         "\t$ ./main -out <output file -in <input file>\n"\
                                         "Read documentation to know more"
 
-#define MSG_FILE_NOT_FOUND "No se ha encontrado dicho archivo\n"
+#define MSG_FILE_NOT_FOUND     "FILE_NOT_FOUND\n"\
+                            "No se ha encontrado dicho archivo"
 
-#define MSG_ERROR_LOADING_COUNTRY_CODES
+#define MSG_ERROR_LOADING_COUNTRY_CODES "Ha ocurrido un error al cargar los codigos de los paises\n"\
+                                        "compruebe que el archivo \"iso3166-1.csv\" se encuentre\n"\
+                                        "disponible en el directorio en el el programa ha sido ejecutado"
 #define MSG_ERROR_PRINTING
-#define MSG_ERROR_READING_FILE
-#define MSG_ERROR_ALLOCATING_TIME
+#define MSG_ERROR_READING_FILE            "\nERROR_READING_FILE\n"\
+                                        "El archivo de entrada no pudo ser leido, compruebe que el nombre este\n"\
+                                        "escrito correctamente y la existencia de el mismo"
+
+#define MSG_ERROR_ALLOCATING_TIME        "\nstrftime(3): el formato especificado "
+
 #define MSG_ERROR_DATA_ON_FILE_MISSING    "\nERROR_DATA_ON_FILE_MISSING\n"\
                                         "En alguna linea de el archivo de entrada falta un dato,\n"\
                                         "compruebe que dicho archivo no esta corrupto y ejecute\n"\
                                         "el programa nuevamente"
 
-#define MSG_OK "Everything executed correctly\n"
+#define MSG_OK "\nEverything executed correctly.\n"
 
 #endif
diff --git a/main.c b/main.c
@@ -59,5 +59,6 @@ int main(int argc, char * argv[])
         return st;
     }    
 
+    printf(MSG_OK);
     return OK;
 }
diff --git a/readlines.c b/readlines.c
@@ -31,8 +31,8 @@ status_t readlines(char *src, char *dest)
     unsigned long infected;
 
 
-// Abre el archivo de entrada en modo lectura si por algun motivo no se puede
-// abrir devuelve un codigo de error;
+//    Abre el archivo de entrada en modo lectura si por algun motivo no se puede
+//    abrir devuelve un codigo de error;
     if((fp = fopen(src, "r")) == NULL)
             return ERROR_READING_FILE;
 
@@ -128,8 +128,11 @@ status_t print_country(size_t country_code, char country_codes[COUNTRIES_NUMBER]
 status_t print_date(size_t date)
 {
     char time_c[TIME_MAX_DIGITS];
-    
-    time_translator(date, time_c, sizeof(time_c));
+    status_t st;
+
+    if((st = time_translator(date, time_c, sizeof(time_c))) != OK)
+        return st;
+
     printf("Fecha: %s\n", time_c);
 
     return OK;
@@ -149,7 +152,7 @@ status_t clean_buffer(char *buffer)
 
     while(*buffer != '\0')
     {
-        (*buffer) = ' ';
+        (*buffer) = '\0';
         buffer++;
     }
     return OK;
@@ -158,6 +161,9 @@ status_t clean_buffer(char *buffer)
 
 status_t time_translator(time_t unix_time, char *res, size_t size) 
 {
+    if(res == NULL)
+        return ERROR_NULL_POINTER;
+
     const char *format = date_print_format;
     struct tm *tmp = gmtime(&unix_time);
 
diff --git a/time_translator.c b/time_translator.c
@@ -1,38 +0,0 @@
-#include <stdio.h>
-#include <time.h>
-#include <string.h>
-
-const char default_format[] = "%B %d %Y";
-
-typedef enum {
-    OK,
-    ERROR_NULL_POINTER
-} status_t;
-
-status_t date_translator(time_t unix_time, char *res, size_t size) 
-{
-    const char *format = default_format;
-    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 1;
-    }
-    return 0;
-}
-
-int main (void) 
-{
-    char res[32];
-
-    time_t t;
-
-    t = 1577880000;
-
-    date_translator(t, res, sizeof(res));
-    puts(res);
-    return 0;
-}
diff --git a/time_translator.h b/time_translator.h
@@ -1,6 +0,0 @@
-#ifndef TIME_TRANSLATOR
-#define TIME_TRANSLATOR
-
-
-
-#endif