commit b3ac8d603e00e9bd9b3d0d5996895d977483b60f
parent ef801fa5c976793ad267b0d134f271d9d50a9eca
Author: Andrew Laack <andrew@laack.co>
Date: Thu, 10 Jul 2025 14:08:06 -0500
Created chunk class for reading and writing a chunk of a file.
Diffstat:
3 files changed, 90 insertions(+), 3 deletions(-)
diff --git a/src/chunk.cpp b/src/chunk.cpp
@@ -0,0 +1,50 @@
+# include "chunk.h"
+# include <iostream>
+# include <fstream>
+
+Chunk::Chunk(std::vector<char> chunkData){
+ this->chunk = chunkData;
+}
+
+Chunk::Chunk(std::string filename, uint start = 0, uint size = 1000){
+
+ std::ifstream file;
+
+ file.open(filename, std::ios::binary);
+ file.seekg(start);
+
+ std::vector<char> bytes;
+
+ char byte;
+ uint itr = 0;
+
+ while (file.read(&byte, 1) && itr < size) {
+ bytes.push_back(byte);
+ itr += 1;
+ }
+
+ file.close();
+ this->chunk = bytes;
+}
+
+std::vector<char> Chunk::getChunk(){
+ return this->chunk;
+}
+
+void Chunk::writeChunk(std::string filename){
+
+ std::ofstream outFile;
+ std::vector<char> bytes = this->chunk;
+
+ outFile.open(filename, std::ios::binary | std::ios::out);
+
+ for(int i = 0 ; i < bytes.size(); ++i){
+ outFile.write(&bytes[i], 1);
+ }
+}
+
+void Chunk::print(){
+ for(int i = 0 ; i < this->chunk.size(); ++i){
+ std::cout << chunk[i];
+ }
+}
diff --git a/src/chunk.h b/src/chunk.h
@@ -0,0 +1,16 @@
+#include <iostream>
+#include <memory>
+#include <vector>
+
+class Chunk{
+
+private:
+ std::vector<char> chunk;
+
+public:
+ Chunk(std::string filename, uint start, uint size);
+ Chunk(std::vector<char> chunkData);
+ std::vector<char> getChunk();
+ void writeChunk(std::string filename);
+ void print();
+};
diff --git a/src/encode.cpp b/src/encode.cpp
@@ -1,6 +1,27 @@
-#include <iostream>
+#include <vector>
+#include <fstream>
+#include "chunk.h"
+
+int main(int argc, char* argv[]){
+
+ if (argc < 3){
+ std::cout << "Provide two CLI arguments for source and destination" << std::endl;
+ return 10;
+ }
+
+ std::string source = argv[1];
+ std::string destination = argv[2];
+
+ Chunk chunk = Chunk(source, 0, 1000000);
+ chunk.print();
+ std::vector<char> bytes = chunk.getChunk();
+
+ std::ofstream outFile;
+
+ Chunk outChunk = Chunk(bytes);
+ outChunk.writeChunk(destination);
-int main(){
- std::cout << "Hello world" << std::endl;
return 0;
}
+
+