int main(int argc, char**argv) { char * inputf; char * outputf; char * hparaml=(char*)malloc(4);//help char * vparam = (char*)malloc(4);//verbose char kierunek = ' ' ;//c lub d - kompresja lub dekompresja char * rparam = (char*)malloc(4);//-r - reclaim , odzyskaj "nieuzywane elementy" int rdepth = 0; char * komenda; komenda = (char*)malloc(255); int i; //je¿eli nie podano parametrów if (argc < 1) { PrintSkladnia(); return 0; } //sprawdzenie parametrów for (i = 1; i < argc; i++) { if (argv[i][0] == '-') { komenda = argv[i]; if (komenda[1] == 'h') { strcpy(hparaml , "TAK"); komenda = ""; } else if (komenda[1] == 'v') { strcpy(vparam , "TAK"); komenda = ""; } else if ((komenda[1] == 'r') || (komenda[1] == 'R')) { //parametr metody slownikowej //printf("%s\n", komenda); //printf("%c\n", komenda[2]); strcpy( rparam , "TAK"); if (strlen(komenda) > 1) { rdepth = atoi(&komenda[2]); } komenda = ""; } else if ((komenda[1] == 'c') || (komenda[1] == 'C')) { if (kierunek != ' ') { printf("Blad skladni - plik nie moze byc jednoczesnie kodowany i dekodowany"); PrintSkladnia(); return 0; } kierunek = 'c'; komenda = ""; } else if ((komenda[1] == 'd') || (komenda[1] == 'D')) { if (kierunek != ' ') { printf("Blad skladni - plik nie moze byc jednoczesnie kodowany i dekodowany"); PrintSkladnia(); return 0; } kierunek = 'd'; komenda = ""; } } else { if((komenda[1] == 'f')||(komenda[1]=='F')) { inputf = (char*)malloc(strlen(argv[i]) + 1); strcpy( inputf , argv[i]) ; komenda = ""; } else if((komenda[1] == 'o')||(komenda[1]=='O')) { outputf = (char*)malloc(strlen(argv[i]) + 1); strcpy(outputf , argv[i] ); komenda = ""; } } } if ((hparaml == "TAK") || (kierunek == ' ') || (inputf == "") ) { PrintSkladnia(); return 0; } if (kierunek == 'c') { kompresja(inputf, outputf, (strcmp(vparam, "TAK")==0? 1 : 0), rdepth); } if (kierunek == 'd') { dekompresja(inputf, outputf, (strcmp(vparam, "TAK") == 0 ? 1 : 0), rdepth); } free(hparaml); free(vparam); free(rparam); free(inputf); free(outputf); return 0; }
int main(int argc, char *argv[]) { int liczba_symboli_modelu=0; int liczba_symboli_dodanych=0; char *nazwa_pliku_in; char rozszerzenie_m[]= "model"; char rozszerzenie_s[]= "modsort"; char rozszerzenie_mmod[]= "modmod"; char rozszerzenie_d[]= "tree"; char rozszerzenie_tkodow[]= "coding"; char rozszerzenie_tkodu[]= "code"; char rozszerzenie_out[]= "huffman"; char nazwapliku_model[24]; char nazwa_modsort[24]; char nazwapliku_drzewo[24]; char nazwa_modmod[24]; char nazwa_tkodow[24]; char nazwa_tkodu[24]; char nazwa_pliku_out[24]; int n; if(argc==2) { nazwa_pliku_in=argv[1]; printf("Parametry programu: %d %s \n", argc, nazwa_pliku_in); } else { printf("Zla liczba parametrow. ","%d", argc); exit(EXIT_FAILURE); } n=nazwa_pliku(nazwa_pliku_in, rozszerzenie_tkodu,nazwa_tkodu); liczba_symboli_modelu = czytaj_tabele_kodu( nazwa_tkodu, tablica_kodu); if (liczba_symboli_modelu>0) printf("Tablica kodu odczytana z pliku %s\n", nazwa_tkodu); else { printf("Odczytanie tablicy kodu nie powiodlo sie.\n"); exit(EXIT_FAILURE); } n=nazwa_pliku(nazwa_pliku_in, rozszerzenie_out,nazwa_pliku_out); n=kompresja(nazwa_pliku_in, nazwa_pliku_out, tablica_kodu,liczba_symboli_modelu); if (n>0) { printf("Suma bitow kodu w pliku %s %d \n", nazwa_pliku_out, n); if (n%8!=0) n=n/8+1; printf("Liczba bajtow w pliku %s %d \n", nazwa_pliku_out, n); } else printf("Kodowanie nie powiodlo sie.\n"); return 0; }