Temes Temat założony przez niniejszego użytkownika |
Tworzenie prostych baz danych » 2012-04-20 17:01:01 Witam. Chcę zrobić prostą grę tekstową singleplayer. Na mój poziom wiedzy poradzę sobie, tylko mam problem z bazą danych. Głupie byłoby zaczynanie co chwile od nowa...
Nie za bardzo wiem (może nie rozumiem lepiej pasuje) jak stworzyć bazę danych. Chodzi mi o to, aby po skończonej grze, można było zapisać wszystko. Wiem jedynie że musi to być inny plik, muszą być tablice (z tego co czytałem) i polecenia odczytu i zapisu. Nie wiem czy musi tam być std::fstream?
Muszę stworzyć oddzielny plik w którym byłyby tylko zmienne z wartością, czyli np. int Wynik = x; int HP = y; int MP = z; int Cash = u; itp.
Potem, żeby z tych zmiennych po otwarciu programu - wyskoczyły dane. Czyli że jeżeli grałem, zapisałem i X = 1, to po ponownym otwarciu było 1 znowu i żeby można było to zmienić.
Czytałem o "Obsłudze plików", ale nie wiele mi to mówi... Nie chcę, aby ktoś mi to robił, potrzebuję jedynie ogólny zapis tego pliku zapisu i co musi być w głównym pliku aby widzieć wszystko z "pliku zapisu"...
Z góry dziękuje za pomoc.
|
|
jankowalski25 |
» 2012-04-20 17:34:35 Po uruchomieniu gry:
1. Sprawdzasz, czy dane zostały zapisane. 2. Jeśli tak, odczytujesz stare dane. 3. Jeśli nie, zapisujesz nowe dane.
Po odczytaniu danych przekazujesz je do jakiejś funkcji, która ustawia wartości odpowiednich zmiennych. Później możesz zacząć grę przy ustawionych danych. |
|
Temes Temat założony przez niniejszego użytkownika |
» 2012-04-20 17:49:13 Spoko, ale chodziło mi o to: 1. Sprawdzasz, czy dane zostały zapisane. 2. Jeśli tak, odczytujesz stare dane. 3. Jeśli nie, zapisujesz nowe dane.
1. Jak sprawdzić czy dane zostały zapisane? 2. Jeśli zostały, jak odczytać stare dane? 3. Jeśli nie zostały, jak zapisać nowe dane?
;) |
|
jankowalski25 |
» 2012-04-20 18:23:13 Przeanalizuj poniższy przykład i poeksperymentuj z nim. #include <fstream> #include <iostream>
void func( std::string line ) { std::cout << line << "\n"; }
int main() { { std::ofstream out( "nazwapliku.txt" ); if( out.good() == true ) { std::string line; line = "Tutaj wstaw tekst do zapisu.\n"; line += "Moze on zawierac kilka linii.\n"; line += "Tutaj dodaj kolejne dane do zapisu.\n"; out << line; out.close(); } } { std::string line; std::ifstream in( "nazwapliku.txt" ); if( in.good() == true ) { while( getline( in, line ) ) { func( line ); } in.close(); } } return 0; }
Więcej informacji znajdziesz w Obsługa plików. @down Poprawiono. |
|
SeaMonster131 |
» 2012-04-20 18:25:51 @up: nie zamykasz pliku po jego otwarciu :) |
|
Temes Temat założony przez niniejszego użytkownika |
» 2012-04-20 19:08:43 "nazwapliku.txt" A nie da sie zapisac w jakis inny sposób? Np. w .cpp albo w jakimś zupełnie wymyślonym pliku? Bo jak .txt jest to sobie dane mogą zmienić, np. podwyższyć statystyki itp. |
|
SeaMonster131 |
» 2012-04-20 19:29:28 Możesz dać jakąkolwiek nazwe.. Tylko jak ktoś otworzy ten plik notatnikiem, to będzie widział dokładnie to, co napisałeś - zapisuj i odczytuj plik binarnie. |
|
Temes Temat założony przez niniejszego użytkownika |
» 2012-04-20 21:19:24 Ah, czyli jak będzie plik .txt to on bedzie w pliku binarnym? Niezrozumiałym dla ludzi? |
|
« 1 » 2 |