/* IFT1169 - démonstration #06 - exercice 06 - Fichier code source - 21-février -2006 v1.08 M.Lokbani - destructeur à part + gcc3.4.2 07-décembre -2003 v1.07 M.Lokbani - comments + gcc3.2 + MinGW/Cygwin/Linux 11-novembre -2000 v1.06 M.Lokbani - gcc2.95 18-juin -2000 v1.05 M.Lokbani - la même chose en Perl 12-juin -2000 v1.04 M.Lokbani - mise à jour pour E00 30-mars -2000 v1.03 M.Lokbani - modification dans le destructeur au niveau de la commande system 03-decembre -1999 v1.02 M.Lokbani - +comments + ajout de la commande system 24-novembre -1999 v1.01 P.Langlais - solution 23-novembre -1999 v1.00 M.Lokbani - l'énoncé contact: lokbani@iro.umontreal.ca Copyright (C) 1999-2006 Université de Montréal Département d'informatique et de Recherche Opérationnelle Mohamed Lokbani -- Tous Droits Réservés -- All Rights Reserved -- Description: ------------ La définition des méthodes de la classe SetR ainsi que la fonction main pour tester l'utilisation des méthodes de la classe SetR. */ #include "1169demo06exo6sol.h" // Manière d'initialiser une constante statique const int SetR::taille_tampon = 10000; // une longue ligne (pas tres propre) // La partie définition associée SetR::SetR(char *fichier,char *toReplace,char *by) { s_out = s_in = fichier; s_out += ".tmp"; tampon = new char [taille_tampon]; entree = new ifstream(fichier,ios::in); sortie = new ofstream(s_out.c_str(),ios::out); if ((*entree) && (*sortie)) { while (entree->getline(tampon,taille_tampon-1)) { *sortie << Remplace(tampon,toReplace,by) << endl; } } else { cout << "Problème d'ouverture fichier\n"; exit(1); } } SetR::~SetR(){ delete [] tampon; entree->close(); sortie->close(); // Obliger d'empaqueter le chemin s'il contient un espace blanc string sy = string("\"") + BINMV + string("\" ") + s_out + " " + s_in; // Version -1- ----------------------------------- // L'appel system n'utilise qu'une variable du type char *, du coup il // faut faire la conversion de string vers un char *. char *sx = new char[sy.size()+1]; for (unsigned int k=0;k sortie dans le même fichier_texte\n"; break; } return 0; }