Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.04 KB | None | 0 0
  1. int main(void)
  2. {
  3. printf("------------ Teoria informacji i kodowania ------------\n");
  4. printf("------- Kompresja i dekompresja metoda Huffmana -------\n");
  5. printf("------------------ Laboratoria 2019 -------------------\n");
  6. printf("------- Mateusz Lesniak -------------------------------\n");
  7. printf("------- WCY18XQ3S1 ------------------------------------\n\n\n");
  8.  
  9. int r;
  10. char nazwa_pliku[255];
  11. char plik_tekstowy[]=".txt";
  12. char plik_jpg[]=".jpg";
  13. char plik_random[]=".random";
  14. char skompresowany[]=".compressed";
  15. char dekopresowany[]=".decompressed";
  16. char nazwa_z_rozszerzeniem[255];
  17.  
  18. printf("Wybierz rozszerzenie pliku\n");
  19. printf("1 - plik tekstowy\n\n");
  20. printf("2 - obraz\n\n");
  21. printf("3 - losowe wartosci binarne\n\n");
  22. scanf("%d",&r);
  23. printf("\nPodaj nazwe pliku\n");
  24. scanf("%s",&nazwa_pliku);
  25. switch(r)
  26. {
  27. case 1:
  28. {
  29. strcat(nazwa_pliku, plik_tekstowy);
  30. }
  31. break;
  32. case 2:
  33. {
  34. strcat(nazwa_pliku, plik_jpg);
  35. }
  36. break;
  37. case 3:
  38. {
  39. strcat(nazwa_pliku, plik_random);
  40. }
  41. break;
  42. }
  43. char* inputFileName = nazwa_pliku ; //plik, ktory bedziemy kompresowac
  44. FILE *inputFileHandle = fopen(nazwa_pliku,"rb"); //otworz do odczytu binarnego
  45. while((inputFileHandle = fopen(nazwa_pliku,"rb")) == NULL)
  46. {
  47. printf("Plik %s nie istnieje, podaj poprawna nazwe pliku \n",nazwa_pliku);
  48. scanf("%s",&nazwa_pliku);
  49. }
  50. strcpy(nazwa_z_rozszerzeniem, nazwa_pliku);
  51. strcat(nazwa_z_rozszerzeniem, dekopresowany);
  52. char* outputFileName = "test.txt.compressed"; //finalny skompresowany plik
  53. char* decompressedFilename = nazwa_z_rozszerzeniem; //plik zdekompresowany
  54. char* treeFileName = "test.txt.tree"; //plik w ktorym zostanie zapisana reprezentacja drzewa
  55. char* minimalModelFileName = "test.txt.model"; //plik w ktorym zostanie zapisany minimalny model
  56. //-----------------Model------------------------
  57. int modelItemsCount = GenerateModelFromFile(inputFileName,huffmanModelArray);
  58. WriteHuffmanModelToFile(minimalModelFileName,huffmanModelArray,modelItemsCount);
  59. int treeItemsCount = GenerateHuffmanTreeFromModel(huffmanModelArray, modelItemsCount, huffmanTreeArray);
  60. WriteHuffmanTreeToFile(treeFileName,huffmanTreeArray,treeItemsCount);
  61. int codeTableItems = GenerateCodeTableFromTree(huffmanTreeArray,treeItemsCount,huffmanCodeArray);
  62.  
  63. //-----------------Kompresja------------------------
  64. printf("Kompresja w trakcie, prosze czekac...\n");
  65. unsigned char appendedBits = WriteCompressedFile(inputFileName,outputFileName,huffmanCodeArray,codeTableItems);
  66. printf("Kompresja zakonczona pomyslnie\n");
  67. //----------------------------------------------------
  68.  
  69. //---------------Dekompresja--------------------------
  70. printf("Dekompresja w trakcie, prosze czekac...\n");
  71. WriteDecompressedFile(outputFileName,decompressedFilename,huffmanTreeArray,treeItemsCount);
  72. printf("Dekompresja zakonczona pomyslnie\n");
  73. //----------------------------------------------------
  74.  
  75.  
  76. return 0;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement