diff options
Diffstat (limited to 'CST 126/Homework_2/program.cpp')
| -rw-r--r-- | CST 126/Homework_2/program.cpp | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/CST 126/Homework_2/program.cpp b/CST 126/Homework_2/program.cpp new file mode 100644 index 0000000..cd5f36b --- /dev/null +++ b/CST 126/Homework_2/program.cpp @@ -0,0 +1,82 @@ +#include <iostream> +#include "helpers.hpp" +#include "Base64Converter.hpp" + +constexpr short ARG_COUNT = 4; + +bool Worker(); +bool Worker(char** argv); + + +int main(const int argc, char* argv[]) +{ + if (argc == ARG_COUNT) + { + //RUN THE COMMAND LINE VERSION + Worker(argv); + } + //RUN THE CONSOLE APP VERSION + return Worker(); +} + +bool Worker() +{ + return false; +} + +bool Worker(char** argv) +{ + const char* arg1 = argv[1]; //-e -d + const char* arg2 = argv[2]; + const char* arg3 = argv[3]; + + const char option = std::tolower(arg1[1]); //e or d + char* buffer = nullptr; + + try { + switch (option) + { + case 'e': + { + size_t size = 1; + buffer = ReadFileAsBinary("FindingPi.exe", buffer, size); + + char* encodedBuffer = Base64Encode(buffer, size); + + bool success = WriteTextToFile(arg3, encodedBuffer); + + delete[] buffer; + delete[] encodedBuffer; + + return success; + } + case 'd': + { + size_t size = 0; + buffer = ReadTextFromFile(arg2, buffer); + + size_t decodedSize = 0; + char* decodedBuffer = Base64Decode(buffer, decodedSize); + bool success = WriteFileFromBinary(arg3, decodedBuffer, decodedSize); + delete[] buffer; + delete[] decodedBuffer; + + return success; + } + default: + std::cerr << "Invalid command option\n" << + "Valid commands:\n" << + "\t-e source_file.exe destination_file.exe" << + "\t\tEncodes file in source into text in destination txt file." << + "\t-d source_file.txt destination_file.exe" << + "\t\tDecodes text in source file into the destination file.\n\n"; + + return false; + } + + } catch (const std::exception& ex) { + std::cerr << "Exception: " << ex.what() << std::endl; + delete[] buffer; + return false; + } +}
\ No newline at end of file |