ProgramLoader corrections

This commit is contained in:
black
2025-07-07 14:32:23 +02:00
parent 3326227bb1
commit cbe7243da4
5 changed files with 20 additions and 6 deletions

View File

@@ -12,3 +12,8 @@ Manager * Manager::getInstance(const std::string &program_path) {
static Manager instance{program_path}; static Manager instance{program_path};
return &instance; return &instance;
} }
int Manager::run() {
ProgramLoader::getInstance(m_path)->indexFile();
return 0;
}

View File

@@ -6,7 +6,8 @@
#define MANAGER_H #define MANAGER_H
#include <map> #include <map>
#include <string> #include <string>
#include <vector>
#include "ProgramLoader.h"
/// Die Manager Instanz sorgt für die Koordination von user input, Datei einlesen, code execution und anderen Aktionen. /// Die Manager Instanz sorgt für die Koordination von user input, Datei einlesen, code execution und anderen Aktionen.
@@ -31,6 +32,8 @@ public:
* @return Manager Instanz * @return Manager Instanz
*/ */
static Manager *getInstance(const std::string &program_path); static Manager *getInstance(const std::string &program_path);
int run();
}; };

View File

@@ -9,6 +9,10 @@ ProgramLoader::ProgramLoader(const std::string &path){
m_programFile.open(path); m_programFile.open(path);
} }
ProgramLoader::~ProgramLoader() {
m_programFile.close();
}
ProgramLoader * ProgramLoader::getInstance(const std::string &program_path) { ProgramLoader * ProgramLoader::getInstance(const std::string &program_path) {
static ProgramLoader instance{program_path}; static ProgramLoader instance{program_path};
return &instance; return &instance;
@@ -20,16 +24,15 @@ ProgramLoader * ProgramLoader::getInstance(const std::string &program_path) {
std::istringstream iss(input); std::istringstream iss(input);
std::string out; std::string out;
do { do {
out.clear();
/// Trenne den IStringStream bei jedem Leerzeichen und füge die Befehl(e)/-sargumente dem Output hinzu /// Trenne den IStringStream bei jedem Leerzeichen und füge die Befehl(e)/-sargumente dem Output hinzu
std::getline(iss, out, ' '); std::getline(iss, out, ' ');
if (out.empty()) break;
/// Stoppe, sobald ein Kommentar im Source Code vorkommt /// Stoppe, sobald ein Kommentar im Source Code vorkommt
if (out.at(0) != '#') { if (out.at(0) != '#') {
if (out.at(out.length() -1) == ',') { if (out.at(out.length() -1) == ',') {
out.erase(out.length() - 1); out.erase(out.length() - 1);
} }
if (out.at(out.length() -1) == ':') {
break;
}
output.push_back(out); output.push_back(out);
} else { } else {
break; break;

View File

@@ -29,6 +29,7 @@ public:
ProgramLoader(const ProgramLoader&&) = delete; ProgramLoader(const ProgramLoader&&) = delete;
ProgramLoader& operator=(const ProgramLoader&) = delete; ProgramLoader& operator=(const ProgramLoader&) = delete;
ProgramLoader& operator=(const ProgramLoader&&) = delete; ProgramLoader& operator=(const ProgramLoader&&) = delete;
~ProgramLoader();
/** /**
* Gibt die Singleton Instanz des ProgramLoaders zurück * Gibt die Singleton Instanz des ProgramLoaders zurück

View File

@@ -2,6 +2,8 @@
// Created by black on 12.06.25. // Created by black on 12.06.25.
// //
#include "Manager.h"
int main() { int main() {
return 0; return Manager::getInstance("/home/black/Nextcloud/Dokumente/Dokumente/Hochschule/2. Semester/Rechnerarchitektur/Projekt/test.txt")->run();
} }