Advertisement
Deriterath

Untitled

Jan 16th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.67 KB | None | 0 0
  1. Pracownik* generator_klas(string text)
  2. {
  3.     int rok, staz;
  4.  
  5.     istringstream iss(text);
  6.     vector<string> results((istream_iterator<string>(iss)),
  7.         istream_iterator<string>());
  8.  
  9.     size_t const half_size = 5;
  10.     vector<string> split_lo(results.begin(), results.begin() + half_size);
  11.  
  12.     vector<string> split_hi;
  13.     split_hi.push_back("");
  14.  
  15.     Pracownik *pracownik;
  16.  
  17.     if (split_lo[0] == "P:")
  18.     {
  19.         rok = atoi(split_lo[3].c_str());
  20.         staz = atoi(split_lo[4].c_str());
  21.         pracownik = new Programista(split_lo[1], split_lo[2], rok, staz, split_hi);
  22.         //pracownik ->wyswietl();
  23.     }
  24.     else if (split_lo[0] == "K:")
  25.     {
  26.         rok = atoi(split_lo[3].c_str());
  27.         staz = atoi(split_lo[4].c_str());
  28.         pracownik = new Kierownik(split_lo[1], split_lo[2], rok, staz, split_hi);
  29.         //pracownik ->wyswietl();
  30.     }
  31.     else if (split_lo[0] == "H:")
  32.     {
  33.         rok = atoi(split_lo[3].c_str());
  34.         staz = atoi(split_lo[4].c_str());
  35.         pracownik = new Handlowiec(split_lo[1], split_lo[2], rok, staz, split_hi);
  36.         //pracownik ->wyswietl();
  37.     }
  38.     else
  39.     {
  40.         cout << "BLAD: nieznany typ rekordu! - linia: " << text;
  41.     }
  42.     return pracownik;
  43. }
  44.  
  45. *pracownicy zaladuj_dane(string nazwa_pliku)
  46. {
  47.     vector<Pracownik*> pracownicy;
  48.     fstream plik;
  49.     string linia;
  50.     plik.open(nazwa_pliku.c_str());
  51.     if(plik.good()==false)
  52.     {
  53.         cout << "BLAD: nieznaleziono danych!";
  54.         exit(0);
  55.     }
  56.         while(!plik.eof())
  57.         {
  58.             getline(plik, linia);
  59.             pracownicy.push_back(generator_klas(linia));
  60.         }
  61.         return pracownicy;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement