#include #include #include #include using namespace std; int main(int, char **) { int iPosPointeur, iPosTexte; char szPath[2][256]; vector vFichier; cout << "Entrez le nom du fichier :"; cin >> szPath[0]; cout << "Entrez le nom du fichier texte :"; cin >> szPath[1]; cout << "Entrez la position du pointeur (Hexadeciaml) :"; cin >> hex >> iPosPointeur; cout << "Entrez la position du texte (Hexadeciaml) :"; cin >> hex >> iPosTexte; ifstream ifFichier(szPath[0], ios::binary); if(ifFichier) { ifFichier.seekg(0, ios::end); vFichier.resize(ifFichier.tellg()); ifFichier.seekg(0, ios::beg); ifFichier.read((char *) vFichier.begin(), vFichier.size()); } ofstream ofTexte(szPath[1], ios::binary | ios::trunc); for(int i = 0; i < (iPosTexte - iPosPointeur) / 2; i++) { ofTexte << "\n"; for(int j = iPosPointeur + vFichier[iPosPointeur + i * 2] + (vFichier[iPosPointeur + i * 2 + 1] * 256); vFichier[j] != 0; j++) switch(vFichier[j]) { case 0x01: ofTexte << ""; break; case 0x02: ofTexte << "<02>"; break; case 0x03: ofTexte << "<03>"; break; case 0x04: switch (vFichier[++j]) { case 0x02: ofTexte << ""; break; case 0x04: ofTexte << ""; break; case 0x05: ofTexte << ""; break; case 0x06: ofTexte << ""; break; case 0x0F: ofText << ""; break; default: ofTexte << setw(2) << << setfill('0') << hex << vFichier[j]; } break; case 0x05: ofTexte << "<05>"; break; case 0x06: ofTexte << "<06>"; break; case 0x0c: ofTexte << "\n"; break; case 0x0a: ofTexte.put('\n'); break; default: ofTexte.put(vFichier[j]); } ofTexte << "\n\n"; } return 0; }