Lista pobierająca dane z pliku.

0

mam problem, musze zrobic baze danych pracownikow, wiem, ze musze do tego zrobic liste, ktora bedzie pobierala dane z pliku, stworzylam plik w którym oddzielam informacje o pracowniku znakiem "|" a nastepny pracownik jest w nastepnej linijce
(Imie|nazwisko|dzien zatrudnienia|miesiac zatrudnienia|rok zatrudnienia|dzien przejscia na emeryture|miesiac|rok)), napisalam strukture ale nie wiem jak zrobic by lista wczytywala dane z pliku? Proszę o pomoc:P

0

tak właśnie myślałam, i napisałam wcześniej kod na wczytywanie z getline, ale nie wiem, jak go użyć przy listach, aby wszystko dobrze działało,

  
      string wiersz;
        ifstream minibaza ("minibaza.txt");
            minibaza.open ("minibaza.txt");
            if (!minibaza.good()) {
            cerr<< "Blad otwarcia pliku" << endl;
        getline (minibaza, wiersz);
        while (!minibaza.eof()){
        cout<< wiersz << endl;
        getline (minibaza, wiersz);
        }

// minibaza to plik z którego wczytuje dane

1

Teraz musisz napisać jakiś prosty parser, który odzieli od siebie dane. Możesz też oddzielać dane w pliku spacją i byłoby Ci o niebo łatwiej. Zwłaszcza, że chyba nie masz pojęcia jak się za to zabrać. Masz sam napisac listę, czy możesz skorzystać z jakiegoś sprytnego i gotowego kontenerka?
http://www.cplusplus.com/reference/list/list/
http://www.cplusplus.com/reference/vector/vector/

for(wczytujesz po kolei linijki){
    for(zaczynasz od początku wczytanej linii; kończysz na końcu;czyli bardzo banalne){
        tworzysz pocniczego stringa i dodajesz do niego kolejne literki
        a w między czasie sprawdzasz czy ta literka, to przypadkiem nie kreska
              jeżeli to kreska, to dodajesz stworzonego stringa do listy, 
              tudzież do innego kontenerka, który trzyma strukture/klase/ cokolwiek..
              
    }
}
1

Prościej (oraz poprawniej) tak:

string wiersz;
ifstream minibaza ("minibaza.txt");
if(!minibaza) cerr<< "Blad otwarcia pliku" << endl;
while(getline(minibaza,wiersz)) cout<<wiersz<<endl;
0

mam Pytanie,mój program musi miec mozliwosc tworzenia raportów tzn. np, umozliwiac ukazanie listy osób, którzy przechodza na emeryture w okreslonym czasie, najblizszym miesiacu, roku itp,
jak mmoge to zrobic?????

1 użytkowników online, w tym zalogowanych: 0, gości: 1