Skip to content
Snippets Groups Projects
Commit 4f32087a authored by Andreas Blakli's avatar Andreas Blakli
Browse files

La til lesFraFil() og skrivTilFil() i ruter.cpp og ruter.h.

parent 4c37dbf1
Branches
No related tags found
No related merge requests found
......@@ -5,9 +5,11 @@ using namespace std;
extern Stoppesteder* gStoppesteder;
Ruter::Ruter() {
lesFraFil();
}
Ruter::~Ruter() {
skrivTilFil();
}
void Ruter::ny(const int& nr) {
......@@ -21,6 +23,7 @@ void Ruter::ny(const int& nr) {
break;
case 1: {
Buss* buss = new Buss;
buss->lesData();
if (buss->ny(-1, -1) != nullptr)
alleRuter.insert(pair<int, Rute*>(nr, buss));
break;
......@@ -183,4 +186,44 @@ int Ruter::lesRute() {
int ruteNr;
ruteNr = lesInt("Skriv inn rute nummer", MIN_RUTER, MAX_RUTER);
return ruteNr;
}
void Ruter::lesFraFil() {
int antallRuter, i;
antallRuter = i = 0;
string type = "";
vector<string> typeSplittet;
ifstream fil(STI_RUTER);
if (fil) {
fil >> antallRuter;
fil.ignore();
while (!fil.eof() && i < antallRuter) {
getline(fil, type);
typeSplittet = hjelp.splittStreng('*', type);
if(typeSplittet[1] == "Buss") {
Buss* buss = new Buss;
buss->lesFraFil(fil);
alleRuter.insert(pair<int, Rute*>(stoi(typeSplittet.front()), buss));
}
else if (typeSplittet[1] == "Bane") {
Bane * bane = new Bane;
bane->lesFraFil(fil);
alleRuter.insert(pair<int, Rute*>(stoi(typeSplittet.front()), bane));
}
i++;
}
fil.close();
} else
cout << "\nError: " << STI_RUTER << " ble ikke funnet!"
<< '\n';
}
void Ruter::skrivTilFil() {
ofstream fil(STI_RUTER);
fil << alleRuter.size() << '\n';
for (const auto & val : alleRuter) {
fil << val.first << '*';
val.second->skrivTilFil(fil);
fil << "X" << '\n';
}
}
\ No newline at end of file
......@@ -2,6 +2,7 @@
#define __RUTER_H
#include <algorithm>
#include <fstream>
#include <iostream>
#include <map>
#include <string>
......@@ -10,10 +11,11 @@
#include "buss.h"
#include "lesData3.h"
#include "rute.h"
#include "hjelpeFunksjoner.h"
class Ruter { //: public Rute
private:
// Rute rute;
HjelpeFunksjoner hjelp;
public:
std::map<int, Rute*> alleRuter;
......@@ -29,6 +31,8 @@ class Ruter { //: public Rute
void spesifikkRuteData(const int& ruteNr);
void endre();
int lesRute();
void lesFraFil();
void skrivTilFil();
};
#endif //__RUTER_H
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment