// main.c #include #include #include #include "compressor.h" // Підключаємо тільки заголовок void display_help(); int main(int argc, char *argv[]) { if (argc < 3) { display_help(); return -1; } char *input_filename = argv[2]; char *output_filename = argv[3]; if (argc == 4 && strcmp(argv[1], "-c") == 0) { if (strstr(output_filename, ".rle") != NULL) { printf("Compressing using RLE...\n"); int result = rle_compress(input_filename, output_filename); if (result >= 0) { printf("Compression successful. Compressed size: %d bytes\n", result); } else { printf("Compression failed with error code %d\n", result); } } else if (strstr(output_filename, ".lz77") != NULL) { printf("Compressing using LZ77...\n"); int result = lz77_compress(input_filename, output_filename); if (result >= 0) { printf("Compression successful. Compressed size: %d bytes\n", result); } else { printf("Compression failed with error code %d\n", result); } } else { printf("Unsupported compression format.\n"); return -1; } } else if (argc == 4 && strcmp(argv[1], "-d") == 0) { if (strstr(input_filename, ".rle") != NULL) { printf("Decompressing RLE...\n"); int result = rle_decompress(input_filename, output_filename); if (result >= 0) { printf("Decompression successful. Decompressed size: %d bytes\n", result); } else { printf("Decompression failed with error code %d\n", result); } } else if (strstr(input_filename, ".lz77") != NULL) { printf("Decompressing using LZ77...\n"); int result = lz77_decompress(input_filename, output_filename); if (result >= 0) { printf("Decompression successful. Decompressed size: %d bytes\n", result); } else { printf("Decompression failed with error code %d\n", result); } } else { printf("Unsupported decompression format.\n"); return -1; } } else if (argc == 3 && strcmp(argv[1], "-h") == 0) { display_help(); } else { printf("Invalid arguments\n"); display_help(); return -1; } return 0; } void display_help() { printf("Usage:\n"); printf(" -c infile outfile : Compress infile to outfile (.rle or .lz77).\n"); printf(" -d infile outfile : Decompress infile to outfile (.rle or .lz77).\n"); printf(" -h : Display this help message.\n"); printf("Example:\n"); printf(" compression_tool -c input.txt output.rle\n"); printf(" compression_tool -d output.rle decompressed.txt\n"); printf(" compression_tool -c input.txt output.lz77\n"); printf(" compression_tool -d output.lz77 decompressed.txt\n"); }