commit 113047735e446135f1800ee9fd535c0e4113a31a
parent d59dcb03f6b9c55468c756c246ac281974c6c491
Author: klewer-martin <martin.cachari@gmail.com>
Date: Wed, 3 Feb 2021 18:24:25 -0300
Updated source code & Makefile;
Diffstat:
7 files changed, 31 insertions(+), 33 deletions(-)
diff --git a/Makefile b/Makefile
@@ -1,5 +1,5 @@
CC = gcc
-CFLAGS = -std=c99
+CFLAGS = -std=c99 -Wall -pedantic
all: main clean
diff --git a/arguments.c b/arguments.c
@@ -1,11 +1,5 @@
#include "arguments.h"
-#define INPUT_ARGUMENT_FOUND_MSG "Encontre un '-in'\n"
-#define OUTPUT_ARGUMENT_FOUND_MSG "Encontre un '-out'\n"
-
-#define INPUT_FILE_NAME_MSG "\t -> Archivo de entrada: "
-#define OUTPUT_FILE_NAME_MSG "\t -> Archivo de salida: "
-
// Valida que los argumentos esten correctos y guarda los nombres de los
// archivos de entrada y salida en src y dest respectivamente;
status_t validate_arguments(int argc, char * argv[], char * src, char * dest)
@@ -38,6 +32,8 @@ status_t validate_arguments(int argc, char * argv[], char * src, char * dest)
// Marca el archivo de entrada como encontrado;
inputFile = OK;
+
+// Procede de la misma forma pero para OUTPUT_ARGUMENT ('-out');
} else if(!strcmp(argv[i], OUTPUT_ARGUMENT)) {
printf(OUTPUT_ARGUMENT_FOUND_MSG);
if(!strcmp(argv[i + 1], INPUT_ARGUMENT))
@@ -49,7 +45,8 @@ status_t validate_arguments(int argc, char * argv[], char * src, char * dest)
}
}
-// Return error if it could get input or output file names;
+// Si uno o ambos de los argumentos no se encontro entonces imprime un codigo
+// de error;
if((inputFile && outputFile) != OK)
return IO_FILE_NOT_FOUND;
diff --git a/arguments.h b/arguments.h
@@ -1,8 +1,14 @@
+#ifndef ARGUMENTS_H
+#define ARGUMENTS_H
+
#include "main.h"
#include "macros.h"
-#ifndef ARGUMENTS_H
-#define ARGUMENTS_H
+#define INPUT_ARGUMENT_FOUND_MSG "Encontre un '-in'\n"
+#define OUTPUT_ARGUMENT_FOUND_MSG "Encontre un '-out'\n"
+
+#define INPUT_FILE_NAME_MSG "\t -> Archivo de entrada: "
+#define OUTPUT_FILE_NAME_MSG "\t -> Archivo de salida: "
void print_error(status_t error);
diff --git a/load_country_codes.c b/load_country_codes.c
@@ -38,11 +38,11 @@ status_t empty_country_codes(char country_codes[COUNTRIES_NUMBER][ARRAYS_LENGTH]
}
-// Abre el archivo "COUNTRY_CODES_FILE_NAME" y lee linea por linea hasta llegar
-// al final, mientras lee lo va guardando en un buffer que recorre caracter por
-// caracter en busqueda de el character separador de datos, en este caso ',',
-// mientras recorre el buffer va separando los datos y los guarda en la variable
-// que corresponda;
+// Abre el archivo "COUNTRY_CODES_FILE_NAME" y lee linea por linea hasta llegar
+// al final, mientras lee lo va guardando en un buffer que recorre caracter por
+// caracter en busqueda de el character separador de datos, en este caso ',',
+// mientras recorre el buffer va separando los datos y los guarda en la variable
+// que corresponda;
status_t load_country_codes(char country_codes[COUNTRIES_NUMBER][ARRAYS_LENGTH])
{
FILE *fp;
diff --git a/main.c b/main.c
@@ -11,14 +11,12 @@
// Lee texto de un archivo con extension .csv cuyo nombre recibe
// como argumento; el cual contiene solo numeros que representan
// un pais, una fecha y una cantidad de infectados y lo guarda en
-// un archivo de extension .csv que tambien recibe como argumento,
-// si no recibe un archivo de salida crea uno con el nombre por
-// defecto 'output.csv';
+// un archivo de texto cuyo nombre tambien recibe como argumento.
#include "main.h"
-#include "arguments.h"
#include "macros.h"
+#include "arguments.h"
#include "load_country_codes.h"
#include "readlines.h"
@@ -26,8 +24,7 @@
int main(int argc, char * argv[])
{
-// Esta variable es para guardar los codigos de error en
-// caso de que haya alguno;
+// Esta variable es para guardar los codigos de error;
status_t st;
// Las siguientes variables son para guardar los nombres de los archivos de
diff --git a/readlines.c b/readlines.c
@@ -1,16 +1,8 @@
// 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"
-#define COUNTRY_PROMPT "Pais"
-
-#define SIZE_OF_BUFF1 32
-#define SIZE_OF_BUFF2 32
-
-const char date_print_format[] = "%d %b %Y";
-
status_t readlines(char *src, char *dest)
{
size_t line, i, j;
@@ -180,7 +172,7 @@ 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;
+ const char *format = date_output_format;
struct tm *tmp = gmtime(&unix_time);
if (strftime(res, size, format, tmp) == 0) {
diff --git a/readlines.h b/readlines.h
@@ -1,19 +1,25 @@
-#ifndef READLINES
-#define READLINES
+#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
+const char date_output_format[] = "%d %b %Y";
+
typedef enum {
PAIS,
DATE,
INFECTED
} data_t;
-
status_t readlines(char *src, char *dest);
status_t fprintf_date(FILE *dest, size_t data);
status_t fprintf_infected(FILE *dest, size_t data);