From b403377abc5a9e6413ab1d88d12acd6d088e4909 Mon Sep 17 00:00:00 2001 From: Kristian Flikka Date: Thu, 14 Mar 2013 15:53:36 +0100 Subject: [PATCH] Reading some lines --- eclipse/src/EclipseDeck.cpp | 6 +++++- eclipse/src/EclipseDeck.hpp | 3 ++- eclipse/src/Parser.cpp | 35 +++++++++++++++++++++++++++++------ eclipse/src/Parser.hpp | 4 +++- eclipse/testdata/single.data | 1 + 5 files changed, 40 insertions(+), 9 deletions(-) diff --git a/eclipse/src/EclipseDeck.cpp b/eclipse/src/EclipseDeck.cpp index 7f09af78d..f0280cbc0 100644 --- a/eclipse/src/EclipseDeck.cpp +++ b/eclipse/src/EclipseDeck.cpp @@ -14,10 +14,14 @@ int EclipseDeck::GetNumberOfKeywords() { return keywords.size(); } -std::vector EclipseDeck::GetKeywords() { +const std::vector EclipseDeck::GetKeywords() { return keywords; } +void EclipseDeck::AddKeyword(const std::string &keyword) { + keywords.push_back(keyword); +} + EclipseDeck::~EclipseDeck() { } diff --git a/eclipse/src/EclipseDeck.hpp b/eclipse/src/EclipseDeck.hpp index ce85c1280..6b4fe0e47 100644 --- a/eclipse/src/EclipseDeck.hpp +++ b/eclipse/src/EclipseDeck.hpp @@ -14,7 +14,8 @@ class EclipseDeck { public: EclipseDeck(); int GetNumberOfKeywords(); - std::vector GetKeywords(); + const std::vector GetKeywords(); + void AddKeyword(const std::string &keyword); virtual ~EclipseDeck(); private: int numberOfKeywords; diff --git a/eclipse/src/Parser.cpp b/eclipse/src/Parser.cpp index 1fb877912..318870d47 100644 --- a/eclipse/src/Parser.cpp +++ b/eclipse/src/Parser.cpp @@ -5,7 +5,7 @@ * Created on March 11, 2013, 3:40 PM */ #include - +#include #include using std::ifstream; @@ -15,15 +15,38 @@ Parser::Parser() { } Parser::Parser(const std::string &path) { - boost::filesystem::path currentPath; - currentPath = boost::filesystem::current_path(); - - // Read keyword definition from file + dataFilePath = path; } EclipseDeck Parser::Parse() { - EclipseDeck deck; + + log.append("Initializing inputstream from file: " + dataFilePath + "\n"); + + ifstream inputstream; + inputstream.open(dataFilePath.c_str()); + + if (!inputstream.is_open()) { + log.append("ERROR: unable to open file"); + return deck; + } + std::string line; + + while (!inputstream.eof()) { + std::getline(inputstream, line); + if (line.substr(0, 2) != "--") { + deck.AddKeyword(line); + } + log.append("Linje: " + line + "\n"); + } + + inputstream.close(); + + std::ofstream logfile; + logfile.open("log.txt"); + logfile << log; + logfile.close(); + return deck; } diff --git a/eclipse/src/Parser.hpp b/eclipse/src/Parser.hpp index df557d3a5..3f588a88e 100644 --- a/eclipse/src/Parser.hpp +++ b/eclipse/src/Parser.hpp @@ -15,10 +15,12 @@ public: Parser(); Parser(const std::string &path); EclipseDeck Parse(); + std::string GetLog(); virtual ~Parser(); private: //EclipseDeck deck; - std::string pathToEclipseFile; + std::string dataFilePath; + std::string log; }; #endif /* PARSER_H */ diff --git a/eclipse/testdata/single.data b/eclipse/testdata/single.data index e69de29bb..583d74db4 100644 --- a/eclipse/testdata/single.data +++ b/eclipse/testdata/single.data @@ -0,0 +1 @@ +HALLOEN \ No newline at end of file