From b9a9897451342d42b461075f68a7b0191df99c06 Mon Sep 17 00:00:00 2001 From: Mixac1 Date: Wed, 30 Mar 2016 11:50:28 +0300 Subject: [PATCH] Added save files and info file about all files --- disk | Bin 67621 -> 60521 bytes disk.cpp | 116 +++++++++++++++++++++++++++++++++---------------------- 2 files changed, 69 insertions(+), 47 deletions(-) diff --git a/disk b/disk index 70715916fb97d1973e69c5b019a048951388abc5..5f86fef080871dee5c763fe17e26c2de039e8d67 100755 GIT binary patch literal 60521 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 literal 67621 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 i49Qww4a|5Yi78QsCxHsRt!JK`B^?qHM) #include #include +#include #define LOGBLOCK_LENGTH 512 #define ALLOCBLOCK_LENGTH LOGBLOCK_LENGTH * 2 @@ -177,26 +178,29 @@ public: } } - string printAll() { - return string("--------------------") + - "\nflags " + to_string(flFIags) + - "\nversion number " + to_string(flTyp) + - "\ninformation used by the Finder " + to_string(flUsrWds) + - "\nfile number " + to_string(flFINum) + - "\nfirst allocation block of data fork " + to_string(flStBlk) + - "\nlogical end-of-file of data fork " + to_string(flLgLen) + - "\nphysical end-of-file of data fork " + to_string(flPyLen) + - "\nfirst allocation block of resource fork " + to_string(flRStBlk) + - "\nlogical end-of-file of resource fork " + to_string(flRLgLen) + - "\nphysical end-of-file of resource fork " + to_string(flRPyLen) + - "\ndate and time of creation " + to_string(flCrDat) + - "\ndate and time of last modification " + to_string(flMdDat) + - "\nlength of file name " + to_string(flNam) + - "\n--------------------\n"; + string printAll() { + stringstream temp; + temp << hex; + temp << "--------------------" << endl; + temp << "flags " << flFIags << endl; + temp << "version number " << flTyp << endl; + temp << "information used by the Finder " << flUsrWds << endl; + temp << "file number " << flFINum << endl; + temp << "first allocation block of data fork " << flStBlk << endl; + temp << "logical end-of-file of data fork " << flLgLen << endl; + temp << "physical end-of-file of data fork " << flPyLen << endl; + temp << "first allocation block of resource fork " << flRStBlk << endl; + temp << "logical end-of-file of resource fork " << flRLgLen << endl; + temp << "physical end-of-file of resource fork " << flRPyLen << endl; + temp << "date and time of creation " << flCrDat << endl; + temp << "date and time of last modification " << flMdDat << endl; + temp << "length of file name " << flNam << endl; + temp << "--------------------" << endl; + return temp.str(); } string printFileName() { - return string("File name: ") + flNamS + "\n"; + return string("File name: ") + flNamS; } string getValidFileName() { @@ -209,18 +213,57 @@ public: return temp; } - string saveFile() { - string temp = "save file: \n"; - - Disk::getDiskStream().seekg(Disk::getFContOffset() + (flRStBlk - 2) * ALLOCBLOCK_LENGTH); - for (int i = 0; i < flRLgLen; ++i) { - temp += (char)Disk::getDiskStream().get(); + void saveData(fstream& out, int point) { + int firstOffset = Disk::getFContOffset(); + char str[ALLOCBLOCK_LENGTH + 1]; + while ((point != 1) && (point != 0)) { + Disk::getDiskStream().seekg(firstOffset + (point - 2) * ALLOCBLOCK_LENGTH); + Disk::getDiskStream().get(str, ALLOCBLOCK_LENGTH + 1); + out.write(str, ALLOCBLOCK_LENGTH + 1); + point = Disk::getDisk().allocBlockMap[point - 2]; + } + } + + void saveFile(string path) { + if (flRStBlk != 0) { + fstream file(path + getValidFileName() + ".resourŅe", ios_base::binary | ios_base::out); + if (!file.is_open()) { + cout << "error: file not created: " << flNamS << endl; + } + saveData(file, flRStBlk); + file.close(); + } + + if (flStBlk != 0) { + fstream file(path + getValidFileName() + ".data", ios_base::binary | ios_base::out); + if (!file.is_open()) { + cout << "error: file not created: " << flNamS << endl; + } + saveData(file, flStBlk); + file.close(); } - return temp; } }; +void generInfoFile(string path, vector< File > files) { + fstream file(path + "Files.info", ios_base::binary | ios_base::out); + if (!file.is_open()) { + cout << "error: info-file not created: " << endl; + } + + file << hex; + for (int i = 0; i < files.size(); ++i) { + file << files[i].printFileName() << endl; + file << files[i].printAll() << endl; + file << "firstOffset resource fork: " << (!files[i].flRStBlk ? 0 : Disk::getFContOffset() + (files[i].flRStBlk - 2) * ALLOCBLOCK_LENGTH) << endl; + file << "firstOffset data fork: " << (!files[i].flStBlk ? 0 : Disk::getFContOffset() + (files[i].flStBlk - 2) * ALLOCBLOCK_LENGTH) << endl; + file << endl << endl; + } + + file.close(); +} + int main() { Disk::getDiskStream().seekg(VINF_OFFSET + 12); @@ -239,32 +282,11 @@ int main() { system("rm -r Files"); system("mkdir Files"); - vector< fstream > fileStreams(fileCount); for (int i = 0; i < fileCount; ++i) { - fileStreams[i].open(string("Files/") + to_string(i) + ":" + files[i].getValidFileName() + ".txt", std::fstream::out); - if (!fileStreams[i].is_open()) { - cout << "error: file not created: " << files[i].flNamS + ".txt" << endl; - } - fileStreams[i] << files[i].printAll() << endl; - fileStreams[i] << files[i].saveFile() << endl; - fileStreams[i].close(); + files[i].saveFile("Files/"); } - - - - int q1 = Disk::getFContOffset(); - int q2 = q1 + (files.back().flRStBlk - 2) * ALLOCBLOCK_LENGTH; - int q3 = q2 + files.back().flRPyLen; - - cout << dec; - cout << "our first file " << q1/ 16 << endl; - cout << "our end file " << q2 / 16 << endl; - cout << "our end file end " << q3 / 16 << endl; - cout << "MB end file " << (q3 + LOGBLOCK_LENGTH * 3) / 16 << endl; - - Disk::getDiskStream().seekg(0, ios::end); - cout << "Disk size " << Disk::getDiskStream().tellg() / 16 << endl; + generInfoFile("Files/", files); return 1; } \ No newline at end of file