Update sk1/main.c
This commit is contained in:
		
							parent
							
								
									699da1fb95
								
							
						
					
					
						commit
						5aea3e8697
					
				
							
								
								
									
										102
									
								
								sk1/main.c
									
									
									
									
									
								
							
							
						
						
									
										102
									
								
								sk1/main.c
									
									
									
									
									
								
							| @ -1,73 +1,65 @@ | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <string.h> | ||||
| #include "compressor.h" | ||||
| #include "compressor.h"  // Підключаємо заголовок | ||||
| 
 | ||||
| void display_help(); | ||||
| 
 | ||||
| int main(int argc, char *argv[]) { | ||||
|     if (argc < 5) {  // Мінімум 4 аргументи (включаючи алгоритм та файл)
 | ||||
|     if (argc < 4) {  // Мінімум 4 аргументи
 | ||||
|         display_help(); | ||||
|         return -1; | ||||
|     } | ||||
| 
 | ||||
|     char *action = argv[1];        // -c або -d
 | ||||
|     char *algorithm = argv[2];     // rle або lz77
 | ||||
|     char *input_filename = argv[3];  // Вхідний файл
 | ||||
|     char *output_filename = argv[4]; // Вихідний файл
 | ||||
|     char *action = argv[1];        // -c, -d, -c2, -d2
 | ||||
|     char *input_filename = argv[2];  // Вхідний файл
 | ||||
|     char *output_filename = argv[3]; // Вихідний файл
 | ||||
| 
 | ||||
|     // Компресія
 | ||||
|     // Для першого алгоритму компресії (наприклад, RLE)
 | ||||
|     if (strcmp(action, "-c") == 0) { | ||||
|         if (strcmp(algorithm, "rle") == 0) { | ||||
|             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 (strcmp(algorithm, "lz77") == 0) { | ||||
|             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); | ||||
|             } | ||||
|         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("Unsupported compression algorithm. Use 'rle' or 'lz77'.\n"); | ||||
|             return -1; | ||||
|             printf("Compression failed with error code %d\n", result); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     // Декомпресія
 | ||||
|     else if (strcmp(action, "-d") == 0) { | ||||
|         if (strcmp(algorithm, "rle") == 0) { | ||||
|             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 (strcmp(algorithm, "lz77") == 0) { | ||||
|             printf("Decompressing 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); | ||||
|             } | ||||
|         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("Unsupported decompression algorithm. Use 'rle' or 'lz77'.\n"); | ||||
|             return -1; | ||||
|             printf("Decompression failed with error code %d\n", result); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     // Показати довідку
 | ||||
|     // Для другого алгоритму компресії (наприклад, LZ77)
 | ||||
|     else if (strcmp(action, "-c2") == 0) { | ||||
|         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 if (strcmp(action, "-d2") == 0) { | ||||
|         printf("Decompressing 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 if (strcmp(action, "-h") == 0) { | ||||
|         display_help(); | ||||
|     } else { | ||||
|     } | ||||
|     else { | ||||
|         printf("Invalid arguments\n"); | ||||
|         display_help(); | ||||
|         return -1; | ||||
| @ -78,12 +70,14 @@ int main(int argc, char *argv[]) { | ||||
| 
 | ||||
| void display_help() { | ||||
|     printf("Usage:\n"); | ||||
|     printf("  -c algorithm infile outfile : Compress infile using specified algorithm (rle or lz77).\n"); | ||||
|     printf("  -d algorithm infile outfile : Decompress infile using specified algorithm (rle or lz77).\n"); | ||||
|     printf("  -h                         : Display this help message.\n"); | ||||
|     printf("  -c infile outfile         : Compress infile using RLE algorithm.\n"); | ||||
|     printf("  -d compressed uncompressed : Decompress compressed file using RLE.\n"); | ||||
|     printf("  -c2 infile outfile        : Compress infile using LZ77 algorithm.\n"); | ||||
|     printf("  -d2 compressed uncompressed: Decompress compressed file using LZ77.\n"); | ||||
|     printf("  -h                        : Display this help message.\n"); | ||||
|     printf("Examples:\n"); | ||||
|     printf("  compression_tool -c rle input.txt output.rle\n"); | ||||
|     printf("  compression_tool -c lz77 input.txt output.lz77\n"); | ||||
|     printf("  compression_tool -d rle input.rle output.txt\n"); | ||||
|     printf("  compression_tool -d lz77 input.lz77 output.txt\n"); | ||||
|     printf("  ./compressor -c input.txt output.rle\n"); | ||||
|     printf("  ./compressor -d output.rle decompressed.txt\n"); | ||||
|     printf("  ./compressor -c2 input.txt output.lz77\n"); | ||||
|     printf("  ./compressor -d2 output.lz77 decompressed.txt\n"); | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user