Sp-n.o.s.

Contenu du snippet

Ce code est en fait un word des années 87, il est peu puissant, mais c' est déjà ca...
il permet d' ouvrir crée... des fichiers en binaire pour la rapidité.

Source / Exemple :


#include <iostream.h>
#include <fstream.h>
#include <strstream.h>
#include <stdlib.h>
// les includes neccesaires au bon fonctionnement

#define TAILLE_MAX_FICHIER 10000000  // taille max du fichier
#define TAILLE_MAX_LONGUEUR_LIGNE_DANS_FICHIER 50000  // taimme max de ligne
#define LONGUEUR_CHAINE_COURANTE 84

class MonChoix
{
public:
MonChoix(){} 
virtual ~MonChoix(){}

virtual void realiserChoix()=0;
char buffer_[TAILLE_MAX_FICHIER]; //espace memoire pour sauvegarde fichier
};

// creation et sauvegarde du fichier
class SauvegardeFichier:public MonChoix
{
public:
SauvegardeFichier(){};
virtual ~SauvegardeFichier(){};
void realiserChoix();
};
void SauvegardeFichier::realiserChoix()
{
char buffer [TAILLE_MAX_LONGUEUR_LIGNE_DANS_FICHIER];
char buffer2[LONGUEUR_CHAINE_COURANTE]; 
cout<<"Entrer le nom de fichier a sauvegarder"<<endl;
cin.getline(buffer2,LONGUEUR_CHAINE_COURANTE,'\n');
ofstream fout(buffer2);//ouverture du fichier
cout<<"Entrer le texte a sauvegarder tabulation+entrer pour finir"<<endl;
cin.getline(buffer,TAILLE_MAX_FICHIER,'\t');
fout<<buffer;
}

// chargement du fichier
class ChargerFichier:public MonChoix
{
public:
ChargerFichier(){};
virtual ~ChargerFichier(){};
virtual void realiserChoix();

};
void ChargerFichier::realiserChoix()
{

char buffer2[LONGUEUR_CHAINE_COURANTE]; 
char buffer1[TAILLE_MAX_LONGUEUR_LIGNE_DANS_FICHIER]; 
ostrstream fout(buffer_,TAILLE_MAX_FICHIER);
cout<<"Entrer le nom de fichier a charger"<<endl;
cin.getline(buffer2,LONGUEUR_CHAINE_COURANTE,'\n');
ifstream fin(buffer2); 
if(!fin) cerr<<"impossible d'ouvrir le fichier "<<buffer1<<endl;
while(fin) 
{
fin.getline(buffer1,TAILLE_MAX_LONGUEUR_LIGNE_DANS_FICHIER);
fout<<buffer1<<endl;
}
}

// fin
class ChoixQuitter:public MonChoix
{
public:
ChoixQuitter(){}; 
virtual ~ChoixQuitter(){};

virtual void realiserChoix()
{
exit(0);//sortie de l'applicatif ....
}
};

class ChoixNonPremis:public MonChoix
{
public:
ChoixNonPremis(){}; 
virtual ~ChoixNonPremis(){};

virtual void realiserChoix()
{
cout<<"choix non permis"<<endl;
}
};

int main() 

{

char choix;
MonChoix* ptChoix;
while(1)
{
cout<<"\n\t\t\tßßßßßßßßßß\n\t\t\t- SP-NOS -\n\t\t\tßßßßßßßßßß\n"<<endl;
cout<<"\n\t\tUn programme de HADJ SALAH Adrien\n"<<endl;
cout<<"\n\t[n]ouveau - [o]uvrir - [s]auvegarder - [q]uitter\n"<<endl;
cin>>choix;
cin.ignore(1,'\n');//purge le caractere \n du flux cin
switch (choix)
{
case 'n': {ptChoix=new SauvegardeFichier;break;} 
case 'o': {ptChoix=new ChargerFichier;break;}
case 's': {ptChoix=new SauvegardeFichier;break;}
case 'q': {ptChoix=new ChoixQuitter;break;} 
default: {ptChoix=new ChoixNonPremis;break;}
}
ptChoix->realiserChoix();
cout<<ptChoix->buffer_;//acces aux donnes enregistrees si choix o
delete ptChoix;
}

return 0;
}

Conclusion :


Bon voila c tout, sinon voici mon site d' émulations :

http://www.emulpower.fr.fm

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.