-
- int CTotoDlg::Sauvegarder(CString file,CString data,CString mode)
- {
- //////////////////////////////////////////////////////////////////////////////////////
- //Mode Ajouter mode="Ajouter"
- //Ajoute à la fin du fichier(par defaut)
- //
- //Mode Remplacer mode="Remplacer"
- // Remplace le fichier
- //////////////////////////////////////////////////////////////////////////////////////
- CFile fichier;
- int Verif;
- int OK=0;
-
-
- //On definit les tab et Enter en format texte
-
- CString Enter;
- CString Tab;
-
- Enter.FormatMessage("\n");
- Tab.FormatMessage("\t");
-
-
-
- //////////////Mode Ajouter////////////////
- if (mode == "Ajouter")
- {
-
- CString st;
-
- st=Charger(file);
- st=st.Right(1);
- if(st!='\n')
- {
- data=Enter+data;
- //on ajoute un entrée (\n) à la fin du fichier s'il n'y en à pas
- }
-
- Verif=fichier.Open(file,CFile::modeWrite);
- //Ouverture du fichier en lecture/écriture
- if(Verif != 0)
- {
-
- fichier.SeekToEnd(); //aller à la fin du fichier
- fichier.Write(data,data.GetLength()); // sauvegarde dans le fichier
- fichier.Close(); // fermeture du fichier
- OK=1;
- }
- }
-
- //////////////Mode Remplacer////////////////
- if (mode == "Remplacer")
- {
-
- Verif=fichier.Open(file,CFile::modeCreate |CFile::modeWrite);
- //Ouverture du fichier en lecture/écriture et le créer s'il n'existe pas
- if(Verif != 0)
- {
- fichier.Write(data,data.GetLength()); // sauvegarde de la log dans un fichier
- fichier.Close(); // fermeture du fichier
- OK=1;
- }
-
- }
-
-
- return OK; //OK=1 si pas de pb OK=0 si pb
- }
-
-
-
-
- //////////////////////////////////////////////////////////////////////////////////////
- //En fonction du nom du fichier on le charge et on le retourne dans un
- //CString st
-
- CString CTotoDlg::Charger(CString file)
- {
-
- CFile fichier;
- char Buffer[100000];
- int Taille=100000;
- CString st="";
- int Buff;
-
-
- int Verif=fichier.Open(file,CFile::modeRead);//Ouverture du fichier en lecture
- if(Verif != 0)
- {
- Buff=int(fichier.GetLength());
- //On recupere la taille du fichier en octets
-
- do
- {
- if(Buff>Taille)
- //si la taille du fichier est encore > au buffer
- {
- fichier.Read(Buffer,Taille);
- //on en prend que 100000
-
- CString tmp=Buffer;
- st=st+tmp.Mid(0,Taille);
- //on copie les 100000 dans le cstring
- Buff=Buff-Taille; //on remet le nombre d'octet à charger
-
- }else
- {
- fichier.Read(Buffer,Buff);
- //si le buffer suffit on le lit
-
- CString tmp=Buffer;
- st=st+tmp.Mid(0,Buff); //on copie le reste dans le cstring
- break;
- //on casse la boucle quand on a tout lu
- }
-
- }while(true);
- //boucle infinie tant que le fichier n'est pas chargé entiérement
-
-
-
-
- fichier.Close(); // fermeture du fichier
-
-
-
- }else
- {
- st="NULL"; //Si problème retourne NULL
- }
-
-
- return st; // retourne le texte dans un CString
-
-
- }
int CTotoDlg::Sauvegarder(CString file,CString data,CString mode)
{
//////////////////////////////////////////////////////////////////////////////////////
//Mode Ajouter mode="Ajouter"
//Ajoute à la fin du fichier(par defaut)
//
//Mode Remplacer mode="Remplacer"
// Remplace le fichier
//////////////////////////////////////////////////////////////////////////////////////
CFile fichier;
int Verif;
int OK=0;
//On definit les tab et Enter en format texte
CString Enter;
CString Tab;
Enter.FormatMessage("\n");
Tab.FormatMessage("\t");
//////////////Mode Ajouter////////////////
if (mode == "Ajouter")
{
CString st;
st=Charger(file);
st=st.Right(1);
if(st!='\n')
{
data=Enter+data;
//on ajoute un entrée (\n) à la fin du fichier s'il n'y en à pas
}
Verif=fichier.Open(file,CFile::modeWrite);
//Ouverture du fichier en lecture/écriture
if(Verif != 0)
{
fichier.SeekToEnd(); //aller à la fin du fichier
fichier.Write(data,data.GetLength()); // sauvegarde dans le fichier
fichier.Close(); // fermeture du fichier
OK=1;
}
}
//////////////Mode Remplacer////////////////
if (mode == "Remplacer")
{
Verif=fichier.Open(file,CFile::modeCreate |CFile::modeWrite);
//Ouverture du fichier en lecture/écriture et le créer s'il n'existe pas
if(Verif != 0)
{
fichier.Write(data,data.GetLength()); // sauvegarde de la log dans un fichier
fichier.Close(); // fermeture du fichier
OK=1;
}
}
return OK; //OK=1 si pas de pb OK=0 si pb
}
//////////////////////////////////////////////////////////////////////////////////////
//En fonction du nom du fichier on le charge et on le retourne dans un
//CString st
CString CTotoDlg::Charger(CString file)
{
CFile fichier;
char Buffer[100000];
int Taille=100000;
CString st="";
int Buff;
int Verif=fichier.Open(file,CFile::modeRead);//Ouverture du fichier en lecture
if(Verif != 0)
{
Buff=int(fichier.GetLength());
//On recupere la taille du fichier en octets
do
{
if(Buff>Taille)
//si la taille du fichier est encore > au buffer
{
fichier.Read(Buffer,Taille);
//on en prend que 100000
CString tmp=Buffer;
st=st+tmp.Mid(0,Taille);
//on copie les 100000 dans le cstring
Buff=Buff-Taille; //on remet le nombre d'octet à charger
}else
{
fichier.Read(Buffer,Buff);
//si le buffer suffit on le lit
CString tmp=Buffer;
st=st+tmp.Mid(0,Buff); //on copie le reste dans le cstring
break;
//on casse la boucle quand on a tout lu
}
}while(true);
//boucle infinie tant que le fichier n'est pas chargé entiérement
fichier.Close(); // fermeture du fichier
}else
{
st="NULL"; //Si problème retourne NULL
}
return st; // retourne le texte dans un CString
}