Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <string>
- #include <iostream>
- #include <fstream>
- std::string memoryData(std::ifstream &file, int startAt, int stopAt, bool show = false)
- {
- std::string data;
- int memorySize = stopAt - startAt;
- file.seekg(startAt);
- data.resize(memorySize);
- file.read(&data[0], memorySize);
- if (show)
- std::cout << data;
- return data;
- }
- std::string memoryData(std::fstream &file, int startAt, int stopAt, bool show = false)
- {
- std::string data;
- int memorySize = stopAt - startAt;
- file.seekg(startAt);
- data.resize(memorySize);
- file.read(&data[0], memorySize);
- if (show)
- std::cout << data;
- return data;
- }
- std::ifstream::pos_type fileSize(const char* filename)
- {
- std::ifstream in(filename, std::ifstream::ate | std::ifstream::binary);
- return in.tellg();
- }
- int main()
- {
- std::ifstream readA("myanimation.json", std::ios::in | std::ios::binary);
- std::ifstream readB("myanimation.png", std::ios::in | std::ios::binary);
- std::ofstream writeAB("myanimation.mas", std::ios::out | std::ios::binary);
- writeAB << readA.rdbuf() << "[END_OF_JSON]" << readB.rdbuf() << "[END_OF_PNG]";
- readA.close();
- readB.close();
- writeAB.close();
- std::ifstream readMAS("myanimation.mas", std::ios::in | std::ios::binary);
- std::ofstream writeJSON("myanimationClone.json", std::ios::out | std::ios::binary);
- std::ofstream writePNG("myanimationClone.png", std::ios::out | std::ios::binary);
- std::string memoryPNG;
- std::string memoryJSON;
- if (readMAS.is_open())
- {
- writeJSON << memoryData(readMAS, 0, 276);
- writePNG << memoryData(readMAS, 289, 30908);
- }
- readMAS.close();
- writeJSON.close();
- writePNG.close();
- //std::ifstream fileTEST("myanimationClone.json", std::ios::in | std::ios::binary);
- std::fstream fileTEST("test.txt", std::ios::in | std::ios::out | std::ios::binary);
- std::string endOfJSON = "<END_OF_JSON>";
- int pos = 0;
- int sizeFile = 0;
- if (fileTEST.is_open())
- {
- // Write in file !
- fileTEST << "I am" << std::endl;
- fileTEST << "a JSON file" << "\n";
- fileTEST << "who contain" << "\n";
- fileTEST << "Good" << "\n";
- fileTEST << "Animation" << "\n";
- fileTEST << endOfJSON+"\n";
- fileTEST << "here is the PNG DATA\n";
- fileTEST << "here is the PNG DATA\n";
- fileTEST << "here is the PNG DATA\n";
- fileTEST << "here is the PNG DATA\n";
- // Read in file
- std::string line;
- fileTEST.seekg(0);
- while (std::getline(fileTEST, line))
- {
- //std::cout << "Position : " << fileTEST.tellg() << "\n";
- std::cout << line << "\n";
- //std::cout << "Position : " << fileTEST.tellg() << "\n";
- }
- fileTEST.clear();
- fileTEST.seekg(0, fileTEST.beg);
- //std::cout << "Position : " <<fileTEST.tellg() << "\n";
- sizeFile = fileSize("test.txt");
- std::cout << "fileSize = " << sizeFile;
- while (fileTEST.good())
- {
- std::getline(fileTEST, line);
- //std::cout << line;
- if (line.find("<END_OF_JSON>") != std::string::npos)
- {
- pos = fileTEST.tellg() - (endOfJSON.length()+1);
- std::cout << "--- Found at "<< pos <<"\n";
- }
- // char ch;
- // fileTEST.get(ch);
- // std::cout << ch;
- }
- fileTEST.clear();
- std::ofstream fileJSON("json.txt", std::ios::out | std::ios::binary);
- std::ofstream filePNG("png.txt", std::ios::out | std::ios::binary);
- if (fileJSON.is_open())
- {
- fileJSON << memoryData(fileTEST, 0, pos);
- fileJSON.close();
- }
- else
- std::cout << "- fileJSON error !\n";
- if (filePNG.is_open())
- {
- filePNG << memoryData(fileTEST, pos+(endOfJSON.length()+1), sizeFile);
- filePNG.close();
- }
- else
- std::cout << "- filePNG error !\n";
- }
- fileTEST.close();
- std::cout << "\n";
- std::cout << "- Operation OK ! \n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement