aboutsummaryrefslogtreecommitdiff
path: root/CST 126/Homework2/Base64Helper.hpp
diff options
context:
space:
mode:
authorrPatrickWarner <[email protected]>2024-05-04 18:10:27 -0700
committerrPatrickWarner <[email protected]>2024-05-04 18:10:27 -0700
commita6a32a3705fa04d7b52c301f7116c3a5705b854c (patch)
tree1601ee9464203c5bbed6634364b5fb5914f007a5 /CST 126/Homework2/Base64Helper.hpp
parentAdded binary file reading function (diff)
downloadhomework-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.hpp89
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;
}