From 0e356a3f2f0e5251562485d0d2127ec6ba2df750 Mon Sep 17 00:00:00 2001 From: orphis Date: Sun, 10 Nov 2002 15:40:15 +0000 Subject: =?UTF-8?q?Programme=20de=20Meradrin=20servant=20=E0=20extraire=20?= =?UTF-8?q?les=20textes=20d'un=20fichier=20de=20ToD.=20Je=20l'ai=20modifi?= =?UTF-8?q?=E9=20pour=20reconnaitre=20les=20codes=20de=20couleur.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ToD/ExtracteurIdiot.cpp | 96 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 ToD/ExtracteurIdiot.cpp (limited to 'ToD') diff --git a/ToD/ExtracteurIdiot.cpp b/ToD/ExtracteurIdiot.cpp new file mode 100644 index 0000000..fde5134 --- /dev/null +++ b/ToD/ExtracteurIdiot.cpp @@ -0,0 +1,96 @@ +#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; +} \ No newline at end of file -- cgit v1.2.3