diff options
| author | rPatrickWarner <[email protected]> | 2024-05-04 18:10:27 -0700 |
|---|---|---|
| committer | rPatrickWarner <[email protected]> | 2024-05-04 18:10:27 -0700 |
| commit | a6a32a3705fa04d7b52c301f7116c3a5705b854c (patch) | |
| tree | 1601ee9464203c5bbed6634364b5fb5914f007a5 /CST 126/Homework2/Base64Helper.hpp | |
| parent | Added binary file reading function (diff) | |
| download | homework-1-reecepwarner-a6a32a3705fa04d7b52c301f7116c3a5705b854c.tar.xz homework-1-reecepwarner-a6a32a3705fa04d7b52c301f7116c3a5705b854c.zip | |
base64 encoding improvements
Diffstat (limited to 'CST 126/Homework2/Base64Helper.hpp')
| -rw-r--r-- | CST 126/Homework2/Base64Helper.hpp | 89 |
1 files changed, 80 insertions, 9 deletions
diff --git a/CST 126/Homework2/Base64Helper.hpp b/CST 126/Homework2/Base64Helper.hpp index d3e9a5f..df04dbf 100644 --- a/CST 126/Homework2/Base64Helper.hpp +++ b/CST 126/Homework2/Base64Helper.hpp @@ -3,32 +3,62 @@ #include <fstream> #include <iostream> + +inline const size_t& SizeOfFile(const char* fileName) +{ + std::fstream MyFile(fileName, std::ios::in | std::ios::binary | std::ios::ate); + std::streampos Sizer; + + if (MyFile.is_open()) + { + Sizer = MyFile.tellg(); + const size_t size = Sizer; + MyFile.close(); + + return size; + } + else + { + std::cerr << "Unable to open file: " << fileName; + return 0; + } +} + + inline char* ReadTextFromFile(const char* fileName, char* buffer) { + std::ifstream File(fileName); + + if (!File.is_open()) + { + std::cerr << "Unable to open file for reading: " << fileName; + } + + File >> buffer; + File.close(); + + return buffer; } -inline char* ReadFileAsBinary(const char* fileName, char* buffer) +inline char* ReadFileAsBinary(const char* fileName, char* buffer, const size_t& size) { try { //open fstream in input mode, with binary mode - std::fstream File(fileName, std::ios::in | std::ios::binary); + std::fstream File(fileName,std::ios::in| std::ios::binary); - if (File.fail()) + if (!File.is_open()) { std::cerr << "Could not open file for binary input: " << fileName; return buffer; } - File.seekg(0, std::ios::end); - std::streamsize size = File.tellg(); - File.seekg(0, std::ios::beg); + delete[] buffer; buffer = nullptr; - buffer = new char[size]; File.read(buffer, size); File.close(); @@ -39,17 +69,58 @@ inline char* ReadFileAsBinary(const char* fileName, char* buffer) std::cerr << "Exception during binary file input. " << fileName << " was not successfully streamed to binary. " << ex.what(); - return buffer; + return nullptr; } } -inline bool WriteFileFromBinary(const char* fileName, const char* buffer) +inline bool WriteFileFromBinary(const size_t& size, const char* fileName, const char* buffer) { + try + { + + std::fstream File(fileName, std::ios::binary | std::ios::out); + + if (!File.is_open()) + { + std::cerr << "Could not open file for binary output: " << fileName; + } + + + File.write(buffer, size); + File.close(); + + /*delete[] buffer; + buffer = nullptr;*/ + + + return buffer; + } + catch (const std::exception& ex) + { + std::cerr << "Exception during binary file input. " << fileName + << " was not successfully streamed to binary. " << + ex.what(); + } + + return false; } inline bool WriteTextToFile(const char* fileName, const char* fileContents) { + std::ofstream File(fileName); + + + if (!File.is_open()) + { + std::cerr << "Unable to open the file: " << fileName << std::endl; + return false; + } + File << fileContents; + + File.close(); + + return false; } |