-
Notifications
You must be signed in to change notification settings - Fork 0
/
PlikZUzytkownikami.cpp
108 lines (92 loc) · 4 KB
/
PlikZUzytkownikami.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include "PlikZUzytkownikami.h"
void PlikZUzytkownikami::dopiszUzytkownikaDoPliku(Uzytkownik uzytkownik) {
string liniaZDanymiUzytkownika = "";
fstream plikTekstowy;
plikTekstowy.open(pobierzNazwePliku().c_str(), ios::app);
if (plikTekstowy.good() == true) {
liniaZDanymiUzytkownika = zamienDaneUzytkownikaNaLinieZDanymiOddzielonaPionowymiKreskami(uzytkownik);
if (czyPlikJestPusty() == true) {
plikTekstowy << liniaZDanymiUzytkownika;
} else {
plikTekstowy << endl << liniaZDanymiUzytkownika;
}
} else
cout << "Nie udalo sie otworzyc pliku " << pobierzNazwePliku() << " i zapisac w nim danych." << endl;
plikTekstowy.close();
}
bool PlikZUzytkownikami::czyPlikJestPusty() {
fstream plikTekstowy;
plikTekstowy.open(pobierzNazwePliku().c_str(), ios::in);
plikTekstowy.seekg(0, ios::end);
if (plikTekstowy.tellg() == 0)
return true;
else
return false;
}
string PlikZUzytkownikami::zamienDaneUzytkownikaNaLinieZDanymiOddzielonaPionowymiKreskami(Uzytkownik uzytkownik) {
string liniaZDanymiUzytkownika = "";
liniaZDanymiUzytkownika += MetodyPomocnicze::konwerjsaIntNaString(uzytkownik.pobierzId())+ '|';
liniaZDanymiUzytkownika += uzytkownik.pobierzLogin() + '|';
liniaZDanymiUzytkownika += uzytkownik.pobierzHaslo() + '|';
return liniaZDanymiUzytkownika;
}
vector <Uzytkownik> PlikZUzytkownikami::wczytajUzytkownikowZPliku() {
Uzytkownik uzytkownik;
vector <Uzytkownik> uzytkownicy;
string daneJednegoUzytkownikaOddzielonePionowymiKreskami = "";
fstream plikTekstowy;
plikTekstowy.open(pobierzNazwePliku().c_str(), ios::in);
if (plikTekstowy.good() == true) {
while (getline(plikTekstowy, daneJednegoUzytkownikaOddzielonePionowymiKreskami)) {
uzytkownik = pobierzDaneUzytkownika(daneJednegoUzytkownikaOddzielonePionowymiKreskami);
uzytkownicy.push_back(uzytkownik);
}
}
plikTekstowy.close();
return uzytkownicy;
}
Uzytkownik PlikZUzytkownikami::pobierzDaneUzytkownika(string daneJednegoUzytkownikaOddzielonePionowymiKreskami) {
Uzytkownik uzytkownik;
string pojedynczaDanaUzytkownika = "";
int numerPojedynczejDanejUzytkownika = 1;
for (int pozycjaZnaku = 0; pozycjaZnaku < daneJednegoUzytkownikaOddzielonePionowymiKreskami.length(); pozycjaZnaku++) {
if (daneJednegoUzytkownikaOddzielonePionowymiKreskami[pozycjaZnaku] != '|') {
pojedynczaDanaUzytkownika += daneJednegoUzytkownikaOddzielonePionowymiKreskami[pozycjaZnaku];
} else {
switch(numerPojedynczejDanejUzytkownika) {
case 1:
uzytkownik.ustawId(atoi(pojedynczaDanaUzytkownika.c_str()));
break;
case 2:
uzytkownik.ustawLogin(pojedynczaDanaUzytkownika);
break;
case 3:
uzytkownik.ustawHaslo(pojedynczaDanaUzytkownika);
break;
}
pojedynczaDanaUzytkownika = "";
numerPojedynczejDanejUzytkownika++;
}
}
return uzytkownik;
}
void PlikZUzytkownikami::zapiszWszystkichUzytkownikowDoPliku(vector <Uzytkownik> uzytkownicy) {
fstream plikTekstowy;
string liniaZDanymiUzytkownika = "";
vector <Uzytkownik>::iterator itrKoniec = --uzytkownicy.end();
plikTekstowy.open(pobierzNazwePliku().c_str(), ios::out);
if (plikTekstowy.good() == true) {
for (vector <Uzytkownik>::iterator itr = uzytkownicy.begin(); itr != uzytkownicy.end(); itr++) {
liniaZDanymiUzytkownika = zamienDaneUzytkownikaNaLinieZDanymiOddzielonaPionowymiKreskami(*itr);
if (itr == itrKoniec) {
plikTekstowy << liniaZDanymiUzytkownika;
} else {
plikTekstowy << liniaZDanymiUzytkownika << endl;
}
liniaZDanymiUzytkownika = "";
}
} else {
cout << "Nie mozna otworzyc pliku " << pobierzNazwePliku() << endl;
}
plikTekstowy.close();
}