Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int main(void)
- {
- printf("------------ Teoria informacji i kodowania ------------\n");
- printf("------- Kompresja i dekompresja metoda Huffmana -------\n");
- printf("------------------ Laboratoria 2019 -------------------\n");
- printf("------- Mateusz Lesniak -------------------------------\n");
- printf("------- WCY18XQ3S1 ------------------------------------\n\n\n");
- int r;
- char nazwa_pliku[255];
- char plik_tekstowy[]=".txt";
- char plik_jpg[]=".jpg";
- char plik_random[]=".random";
- char skompresowany[]=".compressed";
- char dekopresowany[]=".decompressed";
- char nazwa_z_rozszerzeniem[255];
- printf("Wybierz rozszerzenie pliku\n");
- printf("1 - plik tekstowy\n\n");
- printf("2 - obraz\n\n");
- printf("3 - losowe wartosci binarne\n\n");
- scanf("%d",&r);
- printf("\nPodaj nazwe pliku\n");
- scanf("%s",&nazwa_pliku);
- switch(r)
- {
- case 1:
- {
- strcat(nazwa_pliku, plik_tekstowy);
- }
- break;
- case 2:
- {
- strcat(nazwa_pliku, plik_jpg);
- }
- break;
- case 3:
- {
- strcat(nazwa_pliku, plik_random);
- }
- break;
- }
- char* inputFileName = nazwa_pliku ; //plik, ktory bedziemy kompresowac
- FILE *inputFileHandle = fopen(nazwa_pliku,"rb"); //otworz do odczytu binarnego
- while((inputFileHandle = fopen(nazwa_pliku,"rb")) == NULL)
- {
- printf("Plik %s nie istnieje, podaj poprawna nazwe pliku \n",nazwa_pliku);
- scanf("%s",&nazwa_pliku);
- }
- strcpy(nazwa_z_rozszerzeniem, nazwa_pliku);
- strcat(nazwa_z_rozszerzeniem, dekopresowany);
- char* outputFileName = "test.txt.compressed"; //finalny skompresowany plik
- char* decompressedFilename = nazwa_z_rozszerzeniem; //plik zdekompresowany
- char* treeFileName = "test.txt.tree"; //plik w ktorym zostanie zapisana reprezentacja drzewa
- char* minimalModelFileName = "test.txt.model"; //plik w ktorym zostanie zapisany minimalny model
- //-----------------Model------------------------
- int modelItemsCount = GenerateModelFromFile(inputFileName,huffmanModelArray);
- WriteHuffmanModelToFile(minimalModelFileName,huffmanModelArray,modelItemsCount);
- int treeItemsCount = GenerateHuffmanTreeFromModel(huffmanModelArray, modelItemsCount, huffmanTreeArray);
- WriteHuffmanTreeToFile(treeFileName,huffmanTreeArray,treeItemsCount);
- int codeTableItems = GenerateCodeTableFromTree(huffmanTreeArray,treeItemsCount,huffmanCodeArray);
- //-----------------Kompresja------------------------
- printf("Kompresja w trakcie, prosze czekac...\n");
- unsigned char appendedBits = WriteCompressedFile(inputFileName,outputFileName,huffmanCodeArray,codeTableItems);
- printf("Kompresja zakonczona pomyslnie\n");
- //----------------------------------------------------
- //---------------Dekompresja--------------------------
- printf("Dekompresja w trakcie, prosze czekac...\n");
- WriteDecompressedFile(outputFileName,decompressedFilename,huffmanTreeArray,treeItemsCount);
- printf("Dekompresja zakonczona pomyslnie\n");
- //----------------------------------------------------
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement