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