usaa24/sk1/main.c
Bohdan Kapliuk f542d93d35 sk1
2025-01-12 16:48:59 +02:00

67 lines
2.2 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "compressor.h"
void print_help() {
printf("Použitie:\n");
printf(" ./compressor -c infile outfile # Kompresia pomocou algoritmu RLE\n");
printf(" ./compressor -d infile outfile # Dekompresia pomocou algoritmu RLE\n");
printf(" ./compressor -c2 infile outfile # Kompresia pomocou algoritmu LZ78\n");
printf(" ./compressor -d2 infile outfile # Dekompresia pomocou algoritmu LZ78\n");
printf(" ./compressor -h # Zobrazit pomoc\n");
}
int main(int argc, char* argv[]) {
int res = 1;
if (argc < 2) {
fprintf(stderr, "Chyba: Chybaju argumenty. Pouzite -h pre zobrazenie pomoci.\n");
res = 0;
}
if (strcmp(argv[1], "-h") == 0) {
print_help();
res = 0;
}
if ((strcmp(argv[1], "-c") == 0 || strcmp(argv[1], "-d") == 0 ||
strcmp(argv[1], "-c2") == 0 || strcmp(argv[1], "-d2") == 0) && argc != 4) {
fprintf(stderr, "Chyba: Nespravny pocet argumentov. Pouzite -h pre zobrazenie pomoci.\n");
res = 0;
}
const char* input_file = argv[2];
const char* output_file = argv[3];
int result = 0;
if (strcmp(argv[1], "-c") == 0) {
result = compress_1(input_file, output_file);
if (result < 0) {
fprintf(stderr, "Chyba: Kompresia zlyhala.\n");
res = 0;
}
} else if (strcmp(argv[1], "-d") == 0) {
result = decompress_1(input_file, output_file);
if (result < 0) {
fprintf(stderr, "Chyba: Dekompresia zlyhala.\n");
res = 0;
}
} else if (strcmp(argv[1], "-c2") == 0) {
result = compress_2(input_file, output_file);
if (result < 0) {
fprintf(stderr, "Chyba: Kompresia zlyhala.\n");
res = 0;
}
} else if (strcmp(argv[1], "-d2") == 0) {
result = decompress_2(input_file, output_file);
if (result < 0) {
fprintf(stderr, "Chyba: Dekompresia zlyhala.\n");
res = 0;
}
} else {
fprintf(stderr, "Chyba: Neznámy argument. Použite -h pre zobrazenie pomoci.\n");
res = 0;
}
return result;
}