From 0e356a3f2f0e5251562485d0d2127ec6ba2df750 Mon Sep 17 00:00:00 2001
From: orphis <orphis>
Date: Sun, 10 Nov 2002 15:40:15 +0000
Subject: Programme de Meradrin servant � extraire les textes d'un fichier de
 ToD. Je l'ai modifi� pour reconnaitre les codes de couleur.
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

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 <iostream>
+#include <iomanip>
+#include <fstream>
+#include <vector>
+
+using namespace std;
+
+int main(int, char **)
+{
+	int iPosPointeur, iPosTexte;
+	char szPath[2][256];
+	vector<unsigned char> 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 << "<PT" << setw(4) << setfill('0') << i << ">\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 << "<NOM:" << (int) vFichier[++j] << ">";
+				break;
+			case 0x02:
+				ofTexte << "<02>";
+				break;
+			case 0x03:
+				ofTexte << "<03>";
+				break;
+			case 0x04:
+               	switch (vFichier[++j])
+                    {
+                    	case 0x02:
+                         	ofTexte << "<VIOLET>";
+                              break;
+                    	case 0x04:
+                        	ofTexte << "<VERT>";
+                              break;
+			case 0x05:
+				ofTexte << "<BLEU>";
+				break;
+                        case 0x06:
+                         	ofTexte << "<JAUNE>";
+                              break;
+                        case 0x0F:
+                         	ofText << "<FINCOULEUR>";
+                              break;
+                        default:
+                         	ofTexte << setw(2) << << setfill('0') << hex << vFichier[j];
+                    }
+				break;
+			case 0x05:
+				ofTexte << "<05>";
+				break;
+			case 0x06:
+				ofTexte << "<06>";
+				break;
+			case 0x0c:
+				ofTexte << "<NP>\n";
+				break;
+			case 0x0a:
+				ofTexte.put('\n');
+				break;
+			default:
+				ofTexte.put(vFichier[j]);
+			}
+
+		ofTexte << "<FIN>\n\n";
+	}
+
+	return 0;
+}
\ No newline at end of file
-- 
cgit v1.2.3