9511_project01

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

Updated source code, country codes csv file name updated to a shorter one;

Diffstat:
Marguments.c | 2+-
Mdata.c | 4++--
Dinput2.csv | 10----------
Riso3166-1_numbers_and_countries.csv -> iso3166-1.csv | 0
Mload_country_codes.c | 3++-
Mmacros.h | 9++++++---
Mmain.c | 4+++-
Mmain.h | 3++-
Mreadlines.c | 12++++++++----
9 files changed, 24 insertions(+), 23 deletions(-)
diff --git a/arguments.c b/arguments.c
@@ -19,7 +19,7 @@ status_t validate_arguments(int argc, char * argv[], char * src, char * dest)
 
     int i;
     status_t inputFile, outputFile;
-    inputFile = outputFile = FILE_NOT_FOUND;
+    inputFile = outputFile = IO_FILE_NOT_FOUND;
 
     for(i = 1; i < argc; i++) {
         if(!strcmp(argv[i], INPUT_ARGUMENT)) {
diff --git a/data.c b/data.c
@@ -10,8 +10,8 @@ void print_error(status_t error)
         case ERROR_NULL_POINTER:
             fprintf(stderr, MSG_ERROR_NULL_POINTER"\n");
             break;
-        case FILE_NOT_FOUND: 
-            fprintf(stderr, MSG_FILE_NOT_FOUND"\n");
+        case IO_FILE_NOT_FOUND: 
+            fprintf(stderr, MSG_IO_FILE_NOT_FOUND"\n");
             break;
         case ERROR_LOADING_COUNTRY_CODES:
             fprintf(stderr, MSG_ERROR_LOADING_COUNTRY_CODES"\n");
diff --git a/input2.csv b/input2.csv
@@ -1,10 +0,0 @@
-PAIS, FECHA, INFECTADOS
-32,1577880000,2342
-32,1578657600,4923
-32,1579089600,9324
-170,1577880000,8234
-170,1578657600,9234
-170,1579089600,9423
-276,1577880000,8432
-276,1579089600,9129
-276,1579521600,4214 
diff --git a/iso3166-1_numbers_and_countries.csv b/iso3166-1.csv
diff --git a/load_country_codes.c b/load_country_codes.c
@@ -7,6 +7,7 @@
 #include "macros.h"
 #include "load_country_codes.h"
 
+
 status_t clean (char *buffer, size_t size)
 {
     size_t i;
@@ -62,7 +63,7 @@ status_t load_country_codes(char country_codes[COUNTRIES_NUMBER][ARRAYS_LENGTH])
     buff = malloc(INITIAL_SIZE);
     
     if((fp = fopen(COUNTRY_CODES_FILE_NAME, "r")) == NULL)
-        return ERROR_NULL_POINTER;
+        return ERROR_LOADING_COUNTRY_CODES;
 
 
     while(fgets(buff, INITIAL_SIZE, fp) != NULL) {
diff --git a/macros.h b/macros.h
@@ -19,13 +19,16 @@
                                         "\t$ ./main -out <output file -in <input file>\n"\
                                         "Read documentation to know more"
 
-#define MSG_FILE_NOT_FOUND     "FILE_NOT_FOUND\n"\
-                            "No se ha encontrado dicho archivo"
+#define MSG_IO_FILE_NOT_FOUND     "\nIO_FILE_NOT_FOUND\n"\
+                                "Un de los archivos de entrada o salida no se ha especificado"\
 
-#define MSG_ERROR_LOADING_COUNTRY_CODES "Ha ocurrido un error al cargar los codigos de los paises\n"\
+#define MSG_ERROR_LOADING_COUNTRY_CODES "ERROR_LOADING_COUNTRY_CODES\n"\
+                                        "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            "\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"
diff --git a/main.c b/main.c
@@ -51,8 +51,10 @@ int main(int argc, char * argv[])
 //    Carga los codigos de error de los paises de acuerdo al standard iso3166 en el
 //    arreglo mencionado previamente 'country_codes', en caso de haber algun error 
 //    en el proceso devuelve dicho codigo e impreme por stderr un mensaje de error; 
-    if(load_country_codes(country_codes) != OK)
+    if(st = (load_country_codes(country_codes)) != OK) {
+        print_error(st);
         return ERROR_LOADING_COUNTRY_CODES;    
+    }
 
     if((st = readlines(src, dest)) != OK) {
         print_error(st);
diff --git a/main.h b/main.h
@@ -10,7 +10,7 @@
 
 typedef enum {
     OK,
-    FILE_NOT_FOUND,
+    IO_FILE_NOT_FOUND,
     ERROR_INVOCATING_PROGRAM,
     ERROR_NULL_POINTER,
     ERROR_LOADING_COUNTRY_CODES,
@@ -20,4 +20,5 @@ typedef enum {
     ERROR_DATA_ON_FILE_MISSING    
 } status_t;
 
+
 #endif
diff --git a/readlines.c b/readlines.c
@@ -2,7 +2,6 @@
 //    por linea, y los va imprimiendo en pantalla
 
 
-
 #include "readlines.h"
 
 #define COUNTRY_PROMPT "Pais"
@@ -12,6 +11,7 @@ const char date_print_format[] = "%d %b %Y";
 status_t readlines(char *src, char *dest)
 {
     size_t line, i, j;
+    status_t st;
 
 //    Puntero para el archivo de entrada;    
     FILE *fp;
@@ -23,13 +23,17 @@ status_t readlines(char *src, char *dest)
 //    codigo de pais, una fecha o el numero de infectados;
     data_t data;
 
-    char country_codes[COUNTRIES_NUMBER][ARRAYS_LENGTH];
-    load_country_codes(country_codes);
-
     unsigned long country;
     unsigned long date;
     unsigned long infected;
 
+//    Arreglo para almacenar los codigos de los paises segun el standard iso3166-1,
+    char country_codes[COUNTRIES_NUMBER][ARRAYS_LENGTH];
+
+//    Carga los datos al arreglo mencionado previamente, en caso de haber algun
+//    error devuelve el codigo de dicho error;
+    if((st = load_country_codes(country_codes)) != OK)
+        return st;
 
 //    Abre el archivo de entrada en modo lectura si por algun motivo no se puede
 //    abrir devuelve un codigo de error;