Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Tworzenie prostych baz danych

Ostatnio zmodyfikowano 2012-04-21 12:44
Autor Wiadomość
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.
P-54894
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.
P-54899
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?

;)
P-54900
jankowalski25
» 2012-04-20 18:23:13
Przeanalizuj poniższy przykład i poeksperymentuj z nim.
C/C++
#include <fstream>
#include <iostream>

void func( std::string line )
{
    //tutaj operacje na danych
    std::cout << line << "\n";
}

int main()
{
    //zapis
    {
        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();
        }
    }
    //odczyt
    {
        std::string line;
        std::ifstream in( "nazwapliku.txt" );
        if( in.good() == true )
        {
            //wyswietlenie tekstu
            while( getline( in, line ) )
            {
                //przekazanie danych do funkcji
                func( line );
            }
            in.close();
        }
    }
    return 0;
}
Więcej informacji znajdziesz w » Kurs C++Obsługa plików lekcja.
@down Poprawiono.
P-54903
SeaMonster131
» 2012-04-20 18:25:51
@up: nie zamykasz pliku po jego otwarciu :)
P-54904
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.
P-54906
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.
P-54908
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?
P-54913
« 1 » 2
  Strona 1 z 2 Następna strona