From 1dc7d86a71bbab9c7a38ea613dc4d06d8ba22927 Mon Sep 17 00:00:00 2001 From: whaffman Date: Mon, 24 Mar 2025 12:58:34 +0100 Subject: [PATCH] hoi lief --- .vscode/settings.json | 50 ++++++++++++++++++++++++++++++++++ ex04/Makefile | 6 ++-- ex04/Replacer | Bin 0 -> 30168 bytes ex04/Replacer.o | Bin 0 -> 12624 bytes ex04/inc/Replacer.hpp | 29 ++++++++++++++++++++ ex04/main.o | Bin 0 -> 14672 bytes ex04/src/Replacer.cpp | 52 +++++++++++++++++++++++++++++++++++ ex04/src/main.cpp | 47 ++++++++++++++++++++++++++++++++ ex04/testfile | 2 ++ ex04/testfile.replace | 2 ++ ex05/Harl | Bin 0 -> 28776 bytes ex05/Harl.o | Bin 0 -> 9056 bytes ex05/Makefile | 6 ++-- ex05/inc/Harl.hpp | 28 +++++++++++++++++++ ex05/main.o | Bin 0 -> 12280 bytes ex05/src/Harl.cpp | 62 ++++++++++++++++++++++++++++++++++++++++++ ex05/src/main.cpp | 23 ++++++++++++++++ 17 files changed, 301 insertions(+), 6 deletions(-) create mode 100644 .vscode/settings.json create mode 100755 ex04/Replacer create mode 100644 ex04/Replacer.o create mode 100644 ex04/inc/Replacer.hpp create mode 100644 ex04/main.o create mode 100644 ex04/src/Replacer.cpp create mode 100644 ex04/src/main.cpp create mode 100644 ex04/testfile create mode 100644 ex04/testfile.replace create mode 100755 ex05/Harl create mode 100644 ex05/Harl.o create mode 100644 ex05/inc/Harl.hpp create mode 100644 ex05/main.o create mode 100644 ex05/src/Harl.cpp create mode 100644 ex05/src/main.cpp diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..8497a3f --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,50 @@ +{ + "files.associations": { + "array": "cpp", + "atomic": "cpp", + "bit": "cpp", + "*.tcc": "cpp", + "cctype": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "compare": "cpp", + "concepts": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "string": "cpp", + "unordered_map": "cpp", + "vector": "cpp", + "exception": "cpp", + "algorithm": "cpp", + "functional": "cpp", + "iterator": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "numeric": "cpp", + "optional": "cpp", + "random": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "initializer_list": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "limits": "cpp", + "new": "cpp", + "numbers": "cpp", + "ostream": "cpp", + "stdexcept": "cpp", + "streambuf": "cpp", + "typeinfo": "cpp", + "fstream": "cpp" + } +} \ No newline at end of file diff --git a/ex04/Makefile b/ex04/Makefile index 730a48b..5458e0e 100644 --- a/ex04/Makefile +++ b/ex04/Makefile @@ -6,12 +6,12 @@ # By: whaffman +#+ # # +#+ # # Created: 2025/03/19 16:44:48 by whaffman #+# #+# # -# Updated: 2025/03/21 15:17:22 by whaffman ######## odam.nl # +# Updated: 2025/03/23 14:02:26 by whaffman ######## odam.nl # # # # **************************************************************************** # -NAME = -SRC = +NAME = Replacer +SRC = Replacer.cpp main.cpp -include ../common.mk diff --git a/ex04/Replacer b/ex04/Replacer new file mode 100755 index 0000000000000000000000000000000000000000..afb8be5ca77a2492da50ab2985508aaf32bbc0b0 GIT binary patch literal 30168 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 literal 0 HcmV?d00001 diff --git a/ex04/Replacer.o b/ex04/Replacer.o new file mode 100644 index 0000000000000000000000000000000000000000..c2221b916d79900ef034d9f2cf3ec7532d14519f GIT binary patch literal 12624 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 Sv?qkgztH4yyd0 +#+ */ +/* +#+ */ +/* Created: 2025/03/23 13:26:27 by whaffman #+# #+# */ +/* Updated: 2025/03/23 14:04:08 by whaffman ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#pragma once + +#include + +class Replacer +{ + private: + std::string oldString; + std::string newString; + Replacer(); + + public: + ~Replacer(); + Replacer(std::string const &oldString, std::string const &newString); + std::string process(std::string const &input) const; +}; + \ No newline at end of file diff --git a/ex04/main.o b/ex04/main.o new file mode 100644 index 0000000000000000000000000000000000000000..c9507a0eac7871c27a8a74a9e9eb3082f7922e39 GIT binary patch literal 14672 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 literal 0 HcmV?d00001 diff --git a/ex04/src/Replacer.cpp b/ex04/src/Replacer.cpp new file mode 100644 index 0000000..459dce6 --- /dev/null +++ b/ex04/src/Replacer.cpp @@ -0,0 +1,52 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* Replacer.cpp :+: :+: */ +/* +:+ */ +/* By: whaffman +#+ */ +/* +#+ */ +/* Created: 2025/03/23 13:30:57 by whaffman #+# #+# */ +/* Updated: 2025/03/23 14:05:40 by whaffman ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include +#include +#include "Replacer.hpp" + +Replacer::Replacer() +{ +} + +Replacer::~Replacer() +{ +} + +Replacer::Replacer(std::string const &oldString, std::string const &newString) : oldString(oldString), newString(newString) +{ +} + + +std::string Replacer::process(std::string const &input) const +{ + std::string result = ""; + size_t i = 0; + size_t j = 0; + + for (i = 0; i < input.size(); i++) + { + j = 0; + while (i + j < input.size() && input[i + j] == oldString[j]) + j++; + if (j == oldString.size()) + { + result += newString; + i += j - 1; + } + else + result += input[i]; + } + + return result; +} + diff --git a/ex04/src/main.cpp b/ex04/src/main.cpp new file mode 100644 index 0000000..0deda4a --- /dev/null +++ b/ex04/src/main.cpp @@ -0,0 +1,47 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* main.cpp :+: :+: */ +/* +:+ */ +/* By: whaffman +#+ */ +/* +#+ */ +/* Created: 2025/03/23 13:59:46 by whaffman #+# #+# */ +/* Updated: 2025/03/23 14:28:19 by whaffman ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include +#include +#include +#include "Replacer.hpp" + +int main(int argc, char *argv[]) +{ + + std::ifstream inFile; + std::fstream outFile; + std::string outFileName; + std::string line; + + if (argc != 4) + std::cout << "Usage: ./Replacer " << std::endl; + + inFile.open(argv[1], std::ios::in); + if (!inFile.is_open()) + std::cout << "Can't open In file" << std::endl; + + outFileName = argv[1]; + outFileName += ".replace"; + outFile.open(outFileName, std::ios::out); + if (!outFile.is_open()) + std::cout << "Can't open OUT file" << std::endl; + + Replacer replacer(argv[2], argv[3]); + + while(std::getline(inFile, line)) + { + outFile << replacer.process(line); + if (!inFile.eof()) + outFile << std::endl; + } +} \ No newline at end of file diff --git a/ex04/testfile b/ex04/testfile new file mode 100644 index 0000000..5762658 --- /dev/null +++ b/ex04/testfile @@ -0,0 +1,2 @@ +Dit is een test, maar niet zomaar een test +Dit is een test, maar niet zomaar een test diff --git a/ex04/testfile.replace b/ex04/testfile.replace new file mode 100644 index 0000000..402ddac --- /dev/null +++ b/ex04/testfile.replace @@ -0,0 +1,2 @@ +Dit is een proef, maar niet zomaar een proef +Dit is een proef, maar niet zomaar een proef diff --git a/ex05/Harl b/ex05/Harl new file mode 100755 index 0000000000000000000000000000000000000000..26648abe15df56ebf55237f4013b08ac227f9b8d GIT binary patch literal 28776 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 literal 0 HcmV?d00001 diff --git a/ex05/Makefile b/ex05/Makefile index 730a48b..f4ac644 100644 --- a/ex05/Makefile +++ b/ex05/Makefile @@ -6,12 +6,12 @@ # By: whaffman +#+ # # +#+ # # Created: 2025/03/19 16:44:48 by whaffman #+# #+# # -# Updated: 2025/03/21 15:17:22 by whaffman ######## odam.nl # +# Updated: 2025/03/23 15:40:09 by whaffman ######## odam.nl # # # # **************************************************************************** # -NAME = -SRC = +NAME = Harl +SRC = Harl.cpp main.cpp -include ../common.mk diff --git a/ex05/inc/Harl.hpp b/ex05/inc/Harl.hpp new file mode 100644 index 0000000..25329eb --- /dev/null +++ b/ex05/inc/Harl.hpp @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* Harl.hpp :+: :+: */ +/* +:+ */ +/* By: whaffman +#+ */ +/* +#+ */ +/* Created: 2025/03/23 15:06:27 by whaffman #+# #+# */ +/* Updated: 2025/03/23 15:35:07 by whaffman ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include + +class Harl +{ + private: + std::string levels[4]; + void (Harl::*levelFunc[4])(); + void info(); + void debug(); + void warning(); + void error(); + public: + Harl(); + ~Harl(); + void complain(std::string level); + }; \ No newline at end of file diff --git a/ex05/main.o b/ex05/main.o new file mode 100644 index 0000000000000000000000000000000000000000..ff164ee523cd58c1ffb05d58e9e49b67bfdb198c GIT binary patch literal 12280 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 literal 0 HcmV?d00001 diff --git a/ex05/src/Harl.cpp b/ex05/src/Harl.cpp new file mode 100644 index 0000000..c40456b --- /dev/null +++ b/ex05/src/Harl.cpp @@ -0,0 +1,62 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* Harl.cpp :+: :+: */ +/* +:+ */ +/* By: whaffman +#+ */ +/* +#+ */ +/* Created: 2025/03/23 15:09:28 by whaffman #+# #+# */ +/* Updated: 2025/03/23 15:44:03 by whaffman ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "Harl.hpp" + +Harl::Harl() +{ + levels[0] = "DEBUG"; + levels[1] = "INFO"; + levels[2] = "WARNING"; + levels[3] = "ERROR"; + levelFunc[0] = &Harl::debug; + levelFunc[1] = &Harl::info; + levelFunc[2] = &Harl::warning; + levelFunc[3] = &Harl::error; +} +Harl::~Harl() {} + +void Harl::debug() +{ + std::cout << "[DEBUG]" << std::endl; + std::cout << "I love having extra bacon for my 7XL-double-cheese-triple-pickle-special-ketchup burger. I really do!" << std::endl; +} +void Harl::info() +{ + std::cout << "[INFO]" << std::endl; + std::cout << "I cannot believe adding extra bacon costs more money. You didn’t put enough bacon in my burger! If you did, I wouldn’t be asking for more!" << std::endl; +} + +void Harl::warning() +{ + std::cout << "[WARNING]" << std::endl; + std::cout << "I think I deserve to have some extra bacon for free. I’ve been coming for years, whereas you started working here just last month." << std::endl; +} + +void Harl::error() +{ + std::cout << "[ERROR]" << std::endl; + std::cout << "This is unacceptable! I want to speak to the manager now." << std::endl; +} + +void Harl::complain(std::string level) +{ + for (int i = 0; i < 4; i++) + { + if (level == levels[i]) + { + (this->*levelFunc[i])(); + return ; + } + } + std::cout << "I don't know anymorre what to complain about" << std::endl; +} \ No newline at end of file diff --git a/ex05/src/main.cpp b/ex05/src/main.cpp new file mode 100644 index 0000000..63bbb77 --- /dev/null +++ b/ex05/src/main.cpp @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* main.cpp :+: :+: */ +/* +:+ */ +/* By: whaffman +#+ */ +/* +#+ */ +/* Created: 2025/03/23 15:38:32 by whaffman #+# #+# */ +/* Updated: 2025/03/23 15:44:11 by whaffman ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "Harl.hpp" + +int main(void) +{ + Harl harl; + harl.complain("DEBUG"); + harl.complain("INFO"); + harl.complain("WARNING"); + harl.complain("ERROR"); + harl.complain("TEST"); +} \ No newline at end of file