int main(int argc, char** argv) { if(argc!=2) printf("DUMP: za malo argumentow\n"); else { unsigned long long ret = atoh(argv[1]); printf("%d\n", ret); } return 0; if(argc!=2) printf("DUMP: za malo argumentow\n"); else //dump(argv[1], argv[2], argv[3]); //dump_mftrecord(argv[2]); dump_attrrecord(argv[1]); return 0; if(otworz_plik("/ntfs_100M")) { printf("Nie podano nazwy pliku\n"); return EXIT_FAILURE; } pobierz_pierwszy_sektor(); //pokaz_pierwszy_sektor(); //pokaz_sygnaturke(); wylicz_pierwsza_partycje(); pobierz_bs_pierwszej_partycji(); mamy_bs(); ustaw_zmienne_dla_partycji(); pokazwpetli_FILE0(); zamknij_plik(); return (EXIT_SUCCESS); }
hurtownia * realizuj_zamowienia(data * dzis, char * katalog, int * liczba_hurtowni) { int i, j; int liczba_miast, liczba_zamowien, liczba_artykulow; char ** miasta = NULL; int ** odleglosci = NULL; hurtownia * hurtownie; zamowienie * zlecenia; artykul * artykuly; FILE * realizacja; realizacja = otworz_plik(katalog, "realizacja_zlecen.dat", "w"); artykuly = lista_artykulow(&liczba_artykulow, katalog); miasta = lista_miast(&liczba_miast, katalog); zlecenia = lista_zamowien(miasta, liczba_miast, artykuly, liczba_artykulow, &liczba_zamowien, katalog); odleglosci = macierz_odleglosci(liczba_miast, miasta, katalog); hurtownie = lista_hurtowni(artykuly, liczba_artykulow, liczba_hurtowni, miasta, liczba_miast, katalog); for(i = 0; i < liczba_artykulow; i++) free(artykuly[i].nazwa); free(artykuly); for(i = 0; i < liczba_zamowien; i++) { *dzis = zlecenia[i].termin; hurtownie = usun_przeterminowane(hurtownie, *liczba_hurtowni, *dzis); zlecenia[i].numer_miasta = szukaj_indeksu_miasta(zlecenia[i].miasto, miasta, liczba_miast); realizuj_to_zlecenie(zlecenia[i], odleglosci, liczba_miast, hurtownie, *liczba_hurtowni, realizacja); } /*zwalniamy pamiec*/ for(i = 0; i < liczba_miast; i++) free(miasta[i]); free(miasta); for(i = 0; i < liczba_miast; i++) free(odleglosci[i]); free(odleglosci); for(i = 0; i < liczba_zamowien; i++) { for(j = 0; j < zlecenia[i].ilosc_pozycji; j++) free(zlecenia[i].pozycje[j].nazwa); free(zlecenia[i].pozycje); free(zlecenia[i].miasto); } free(zlecenia); return hurtownie; }
void wpisz_hurtownie_do_pliku(hurtownia * hurtownie, int liczba_hurtowni, char * katalog) { FILE * akt_hurtownie; int i, j; akt_hurtownie = otworz_plik(katalog, "hurtownia_stan1.dat", "w"); for(i = 0; i < liczba_hurtowni; i++) { fputs(hurtownie[i].miasto, akt_hurtownie); for(j = 0; j < hurtownie[i].ilosc_pozycji; j++) fprintf(akt_hurtownie, "%ld %d %.2f %d %d %d\n", hurtownie[i].produkty[j].ID, hurtownie[i].produkty[j].ilosc, hurtownie[i].produkty[j].cena, hurtownie[i].produkty[j].waznosc.dzien, hurtownie[i].produkty[j].waznosc.miesiac, hurtownie[i].produkty[j].waznosc.rok); } fputc('\n', akt_hurtownie); fclose(akt_hurtownie); }
void stworz_liste_przeterminowanych(int prog, hurtownia * hurtownie, int ilosc_hurtowni, data dzis, char * katalog) { FILE * przeterminowane; int i, j, k, wpisz, rozmiar_tymczasowej = 0; char ** tymczasowe = NULL; przeterminowane = otworz_plik(katalog, "przeterminowane.dat", "w"); for(i = 0; i < ilosc_hurtowni; i++) for(j = 0; j < hurtownie[i].ilosc_pozycji; j++) { wpisz = 1; if((roznica_dat(hurtownie[i].produkty[j].waznosc, dzis) <= prog) && ((hurtownie[i].produkty[j].waznosc.dzien != 0) && (hurtownie[i].produkty[j].waznosc.miesiac != 0) && (hurtownie[i].produkty[j].waznosc.rok != 0))) { for(k = 0; k < rozmiar_tymczasowej; k++) if((wpisz == 1) && (strcmp(hurtownie[i].produkty[j].nazwa, tymczasowe[k]) == 0)) wpisz = 0; if(wpisz == 1) { fprintf(przeterminowane, "%s", hurtownie[i].produkty[j].nazwa); rozmiar_tymczasowej++; if((tymczasowe = realloc(tymczasowe, rozmiar_tymczasowej * sizeof(char *))) == NULL) { printf("Blad alokacji pamieci"); exit(1); } if((tymczasowe[k] = malloc((strlen(hurtownie[i].produkty[j].nazwa) + 1) * sizeof(char))) == NULL) { printf("Blad alokacji pamieci"); exit(1); } strcpy(tymczasowe[k], hurtownie[i].produkty[j].nazwa); } } } for(i = 0; i < rozmiar_tymczasowej; i++) free(tymczasowe[i]); free(tymczasowe); fclose(przeterminowane); }
void znajdz_koncowki(int prog, data dzis, char * katalog, hurtownia * hurtownie, int liczba_hurtowni) { int i, j; int liczba_miast, liczba_zamowien, liczba_artykulow; char ** miasta = NULL; int ** odleglosci = NULL; zamowienie * zlecenia; artykul * artykuly; data aktualna, poczatkowa; FILE * koncowki; koncowki = otworz_plik(katalog, "koncowki.dat", "w"); artykuly = lista_artykulow(&liczba_artykulow, katalog); miasta = lista_miast(&liczba_miast, katalog); odleglosci = macierz_odleglosci(liczba_miast, miasta, katalog); do { zlecenia = lista_zamowien(miasta, liczba_miast, artykuly, liczba_artykulow, &liczba_zamowien, katalog); poczatkowa = zlecenia[0].termin; for(i = 0; i < liczba_zamowien; i++) { aktualna = zlecenia[i].termin; if(roznica_dat(aktualna, poczatkowa) < prog) { if(i == 0) dzis = dodaj_do_daty(dzis, 1); else dzis = dodaj_do_daty(dzis, roznica_dat(aktualna, zlecenia[i - 1].termin)); szukaj_wyczerpanych(zlecenia[i], odleglosci, liczba_miast, hurtownie, liczba_hurtowni, koncowki, dzis); } } } while((prog = prog - roznica_dat(zlecenia[liczba_zamowien - 1].termin, zlecenia[0].termin) - 1) > 0); for(i = 0; i < liczba_artykulow; i++) free(artykuly[i].nazwa); free(artykuly); for(i = 0; i < liczba_miast; i++) free(miasta[i]); free(miasta); for(i = 0; i < liczba_miast; i++) free(odleglosci[i]); free(odleglosci); for(i = 0; i < liczba_zamowien; i++) { for(j = 0; j < zlecenia[i].ilosc_pozycji; j++) free(zlecenia[i].pozycje[j].nazwa); free(zlecenia[i].pozycje); free(zlecenia[i].miasto); } free(zlecenia); for(i = 0; i < liczba_hurtowni; i++) { for(j = 0; j < hurtownie[i].ilosc_pozycji; j++) free(hurtownie[i].produkty[j].nazwa); free(hurtownie[i].produkty); free(hurtownie[i].miasto); } free(hurtownie); fclose(koncowki); }