From 5f1144976cc641285933336b314ea67908bce84d Mon Sep 17 00:00:00 2001 From: andrbl <andrbl@stud.ntnu.no> Date: Thu, 7 Apr 2022 11:28:07 +0200 Subject: [PATCH] Oppdaterte lesFraFil() og skrivTilFil() i rute.cpp og rute.h. --- rute.cpp | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++----- rute.h | 9 ++++++--- 2 files changed, 59 insertions(+), 8 deletions(-) diff --git a/rute.cpp b/rute.cpp index 3c4e1b3..10ba517 100644 --- a/rute.cpp +++ b/rute.cpp @@ -124,17 +124,20 @@ void Rute::skrivDataForlengs() { int totalTid, storrelseListe; totalTid = 0; storrelseListe = alleStoppestedenePaaRuten.size(); - cout << "\n\n..::Stoppested navn\tTid mellom stopp" + cout << "\n\n\t..::Stoppested navn\tTid mellom stopp" << "\tTotal tid fra rutestart::.."; for (const auto& val : alleStoppestedenePaaRuten) { if (val->minutterFraForrigeStoppested != 0) totalTid += val->minutterFraForrigeStoppested; stopp = gStoppesteder->hentEksisterende(val->indexStoppested); if (stopp != nullptr) { - cout << "\n\t" + cout << "\n\t\t" << stopp->hentNavn() + << setw(15) << "\t" << val->minutterFraForrigeStoppested - << "\t" << totalTid; + << setw(15) + << "\t\t" << totalTid + << setw(15); } } } @@ -423,7 +426,7 @@ void Rute::tabell() { } } else { fraKlTime = fraKlMin = tilKlTime = tilKlMin = 0; - //cout << "\nAvbryter" << '\n'; + // cout << "\nAvbryter" << '\n'; } } while (fraKlTime > 0 || fraKlMin > 0 || tilKlTime > 0 || tilKlMin > 0); // fraKlTime != 0 || fraKlMin != 0 && tilKlTime != 0 || tilKlMin != 0 && ikkeFullt); @@ -508,4 +511,49 @@ int Rute::hentTotalTidTilbake(const int& pos) { } return -1; } -// int Ruter::finnTidTilNesteIRute() \ No newline at end of file + +void Rute::lesFraFil(ifstream& inn) { + Stopp* stopp = nullptr; + vector<string> linjenSplittet; + int pos = 0; + string heleLinjen = ""; + // getline(inn, heleLinjen); + // cout << heleLinjen << "\n\n"; + do { + getline(inn, heleLinjen); + linjenSplittet = hjelp.splittStreng('*', heleLinjen); + pos = 0; + if (heleLinjen != "Buss" && heleLinjen != "Bane" && heleLinjen != "X") { + for (int i = 0; i < linjenSplittet.size() -1; i++) { + // if (!hjelp.erBokstav(val)) { + switch (i) { + case 0:{ + stopp = new Stopp; + stopp->indexStoppested = stoi(linjenSplittet[0]); + break; + } + case 1: { + stopp->minutterFraForrigeStoppested = stoi(linjenSplittet[1]); + alleStoppestedenePaaRuten.push_back(stopp); + break; + } + } + // } + cout << stopp->indexStoppested << '\n' + << stopp->minutterFraForrigeStoppested << '\n'; + + cout << alleStoppestedenePaaRuten.size() << " size \n\n"; + pos++; + } + //alleStoppestedenePaaRuten.push_back(stopp); + } + } while (heleLinjen != "Buss" && heleLinjen != "Bane" && heleLinjen != "X"); +} + +void Rute::skrivTilFil(ofstream& ut) { + for (const auto& val : alleStoppestedenePaaRuten) { + ut << val->indexStoppested << '*' + << val->minutterFraForrigeStoppested << '*' + << '\n'; + } +} \ No newline at end of file diff --git a/rute.h b/rute.h index 5fbb18a..aa8cf7f 100644 --- a/rute.h +++ b/rute.h @@ -4,13 +4,14 @@ #include <algorithm> #include <iostream> #include <list> +#include <iomanip> +#include "enumer.h" #include "hjelpeFunksjoner.h" #include "konstanter.h" #include "lesData3.h" #include "stoppested.h" #include "stoppesteder.h" -#include "enumer.h" struct Stopp { int indexStoppested; @@ -45,8 +46,10 @@ class Rute { int lesTid(); virtual void skrivType(); void tabell(); - int hentTotalTidForan(const int & navn); - int hentTotalTidTilbake(const int & navn); + int hentTotalTidForan(const int& navn); + int hentTotalTidTilbake(const int& navn); + virtual void lesFraFil(std::ifstream& inn); + virtual void skrivTilFil(std::ofstream& ut); }; #endif //__RUTE_H \ No newline at end of file -- GitLab