- #include <windows.h>
- #include <fstream>
- using namespace std;
- bool bMaj=false;
- const char*PtCcin;
- int u;
- string cCint;
- int param(int u);//déclaration de param (fonction pour les testes voir plus bas)
-
- main(int argc,char**argv)
- {
-
- ofstream Fichier;
- ifstream fStr;
- /*déclaration des constantes*/
- const char CcTestVir=',';
- const char CcTestPoin='.';
- const char CcTestDbPoin=':';
- const char CcTestPoinVir=';';
- const char CcTestExclam='!';
- const char CcTestIntero='?';
- const char CcTestParent=')';
-
- fStr.open(argv[1], fstream::in);//ouverture du texte qui a ouvert le programme
- if(fStr)
- {
- /*Création d'une copy de chemin d'accès pour ne pas toucher au texte originale*/
- char*teste=argv[1];//récupération du chemin d'accès qui a ouvert le programme
- int ilongChemin=strlen(teste);//récupération de la longueur du chemin
- char suit[ilongChemin+10];//création d'un tableau pour stoquer le chemin
- strncpy(suit,teste,ilongChemin-4);//copy du chemin sans le .txt
- strcat(suit,"_corriger.txt");//rajout de "_corriger.txt" dans le chemin d'accès
- /*************************************************************************/
- Fichier.open(suit);//ouverture du texte en mode écriture
-
- while(getline(fStr, cCint) ){//boucle sur le numbre de ligne
- PtCcin=cCint.c_str();
- int ii=strlen(PtCcin);
- u=0;
- for(int i=0;i<=ii;i++){//boucle sur le numbre de lettre dans une ligne
-
- if(*PtCcin==' ')
- {
- PtCcin++;
- if(*PtCcin==CcTestVir)
- {PtCcin--;cCint.erase(u,1);}else
- if(*PtCcin==CcTestPoin)
- {PtCcin--;cCint.erase(u,1);}else
- if(*PtCcin==' ')
- {PtCcin--;cCint.erase(u,1);}else
- if(*PtCcin==CcTestParent)
- {PtCcin--;cCint.erase(u,1);}else
- {PtCcin--;}
- }
-
-
-
- /*un switch pour voir quel lettre/signe nous avons*/
- switch(*PtCcin)
- {
- case ',':
- PtCcin++;
- if(*PtCcin!=' '){
- u++;cCint.insert(u," ");
- *PtCcin--;u--;
- }
- else{PtCcin--;}
- break;
-
-
- case '.':
- bMaj=true;
- PtCcin++;
- if(*PtCcin==CcTestPoin)
- {PtCcin--; break;}else
- if(*PtCcin!=' '){
- ii++; u++;cCint.insert(u," ");
- *PtCcin--;u--;
- }
- else{PtCcin--;}
- break;
- case':':
- PtCcin++;
- if(*PtCcin==CcTestParent)
- {
- PtCcin--;
- break;
- }else{PtCcin--;
- param(u);}
- break;
- case';':
- param(u);
- break;
- case'!':
- param(u);
- bMaj=true;
- break;
- case'?':
- param(u);
- bMaj=true;
- break;
-
- default:
- {
- if(bMaj==true && islower(*PtCcin)) {
- bMaj=false;
- char temp[2];
- temp[0] = (char)((*PtCcin)&0xDF);
- temp[1]=0;
- cCint.replace(u,1,&temp[0]);
- }
- bMaj=false;
- break;
- }
- }
-
-
- u++; PtCcin++;
- }
- Fichier << cCint<<"\n";//écriture du texte dans le fichier _corriger.txt
- }
- //on ferme
- Fichier.close();
- fStr.close();
- MessageBox(NULL,"Correction terminé","Fin",MB_OK);//message de fin
- }else
- {
- MessageBox(NULL,"FICHIER ERREUR","ERREUR",MB_ICONERROR);
- MessageBox(NULL,
- "Ce progamme a besoin d'un fichier texte (.txt) pour fonctionner\nOuvrez le avec un fichier !",
- "Info",MB_OK|MB_ICONASTERISK);
- return 0;
- }
- }
- int param(int u)
- {
- /*vérifiquation de l'espace avant notre signe*/
- PtCcin--;
- if(*PtCcin==' ')
- {*PtCcin++;}else{
- cCint.insert(u," ");
- PtCcin++;
- u++;
- }
- /*vérifiquation de l'espace après notre signe*/
- PtCcin++;
- if(*PtCcin==' ')
- {
- *PtCcin--;
- }else{
- u++;cCint.insert(u," ");
- PtCcin--;
- }
-
- }
#include <windows.h>
#include <fstream>
using namespace std;
bool bMaj=false;
const char*PtCcin;
int u;
string cCint;
int param(int u);//déclaration de param (fonction pour les testes voir plus bas)
main(int argc,char**argv)
{
ofstream Fichier;
ifstream fStr;
/*déclaration des constantes*/
const char CcTestVir=',';
const char CcTestPoin='.';
const char CcTestDbPoin=':';
const char CcTestPoinVir=';';
const char CcTestExclam='!';
const char CcTestIntero='?';
const char CcTestParent=')';
fStr.open(argv[1], fstream::in);//ouverture du texte qui a ouvert le programme
if(fStr)
{
/*Création d'une copy de chemin d'accès pour ne pas toucher au texte originale*/
char*teste=argv[1];//récupération du chemin d'accès qui a ouvert le programme
int ilongChemin=strlen(teste);//récupération de la longueur du chemin
char suit[ilongChemin+10];//création d'un tableau pour stoquer le chemin
strncpy(suit,teste,ilongChemin-4);//copy du chemin sans le .txt
strcat(suit,"_corriger.txt");//rajout de "_corriger.txt" dans le chemin d'accès
/*************************************************************************/
Fichier.open(suit);//ouverture du texte en mode écriture
while(getline(fStr, cCint) ){//boucle sur le numbre de ligne
PtCcin=cCint.c_str();
int ii=strlen(PtCcin);
u=0;
for(int i=0;i<=ii;i++){//boucle sur le numbre de lettre dans une ligne
if(*PtCcin==' ')
{
PtCcin++;
if(*PtCcin==CcTestVir)
{PtCcin--;cCint.erase(u,1);}else
if(*PtCcin==CcTestPoin)
{PtCcin--;cCint.erase(u,1);}else
if(*PtCcin==' ')
{PtCcin--;cCint.erase(u,1);}else
if(*PtCcin==CcTestParent)
{PtCcin--;cCint.erase(u,1);}else
{PtCcin--;}
}
/*un switch pour voir quel lettre/signe nous avons*/
switch(*PtCcin)
{
case ',':
PtCcin++;
if(*PtCcin!=' '){
u++;cCint.insert(u," ");
*PtCcin--;u--;
}
else{PtCcin--;}
break;
case '.':
bMaj=true;
PtCcin++;
if(*PtCcin==CcTestPoin)
{PtCcin--; break;}else
if(*PtCcin!=' '){
ii++; u++;cCint.insert(u," ");
*PtCcin--;u--;
}
else{PtCcin--;}
break;
case':':
PtCcin++;
if(*PtCcin==CcTestParent)
{
PtCcin--;
break;
}else{PtCcin--;
param(u);}
break;
case';':
param(u);
break;
case'!':
param(u);
bMaj=true;
break;
case'?':
param(u);
bMaj=true;
break;
default:
{
if(bMaj==true && islower(*PtCcin)) {
bMaj=false;
char temp[2];
temp[0] = (char)((*PtCcin)&0xDF);
temp[1]=0;
cCint.replace(u,1,&temp[0]);
}
bMaj=false;
break;
}
}
u++; PtCcin++;
}
Fichier << cCint<<"\n";//écriture du texte dans le fichier _corriger.txt
}
//on ferme
Fichier.close();
fStr.close();
MessageBox(NULL,"Correction terminé","Fin",MB_OK);//message de fin
}else
{
MessageBox(NULL,"FICHIER ERREUR","ERREUR",MB_ICONERROR);
MessageBox(NULL,
"Ce progamme a besoin d'un fichier texte (.txt) pour fonctionner\nOuvrez le avec un fichier !",
"Info",MB_OK|MB_ICONASTERISK);
return 0;
}
}
int param(int u)
{
/*vérifiquation de l'espace avant notre signe*/
PtCcin--;
if(*PtCcin==' ')
{*PtCcin++;}else{
cCint.insert(u," ");
PtCcin++;
u++;
}
/*vérifiquation de l'espace après notre signe*/
PtCcin++;
if(*PtCcin==' ')
{
*PtCcin--;
}else{
u++;cCint.insert(u," ");
PtCcin--;
}
}