|
begin process at 2008 05 16 05:57:13
Derniers logiciels
|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
CORRECTEUR DE PONCTUATION
Information sur la source
Description
Mon petit programme corrige les fautes de ponctuation telleque un espace avent un poin, la virgule, poin virgule, deux poins etc... ou le menque d'espace après la vigule, le point etc...
Source
- #include <windows.h>
- #include <fstream>
- using namespace std;
- bool bMaj=false;
- const char*PtCcin;
- string cCint;
- void param(const char cCpar,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 nombre de ligne
- PtCcin=cCint.c_str();
- int ii=strlen(PtCcin);
- int u=0;
- for(int i=0;i<=ii;i++){//boucle sur le nombre 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(CcTestDbPoin,u);}
- break;
- case';':
- param(CcTestPoinVir,u);
- break;
- case'!':
- param(CcTestExclam,u);
- bMaj=true;
- break;
- case'?':
- param(CcTestIntero,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]);
- }
- 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;
- }
- }
- void param(const char cCpar,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--;
- u--;
- }
-
- }
#include <windows.h>
#include <fstream>
using namespace std;
bool bMaj=false;
const char*PtCcin;
string cCint;
void param(const char cCpar,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 nombre de ligne
PtCcin=cCint.c_str();
int ii=strlen(PtCcin);
int u=0;
for(int i=0;i<=ii;i++){//boucle sur le nombre 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(CcTestDbPoin,u);}
break;
case';':
param(CcTestPoinVir,u);
break;
case'!':
param(CcTestExclam,u);
bMaj=true;
break;
case'?':
param(CcTestIntero,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]);
}
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;
}
}
void param(const char cCpar,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--;
u--;
}
}
Fichier Zip
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
Télécharger le zip
Historique
- 03 mai 2008 09:00:03 :
- lol dsl trompé de boutton
- 03 mai 2008 10:51:27 :
- correction des fautes d'orthographe
- 03 mai 2008 10:52:49 :
- ...
- 03 mai 2008 11:14:40 :
- omg les fautes la honte
- 03 mai 2008 11:27:21 :
- omg les fautes la honte
- 03 mai 2008 11:28:51 :
- omg les fautes la honte
- 03 mai 2008 11:30:25 :
- omg les fautes la honte
- 03 mai 2008 11:34:16 :
- c'est bon je crois
- 05 mai 2008 15:36:47 :
- mis à jour des fautes d'orthographe si il y en a encors me le dire et mis à jour de la source elle peut désormais corriger des textes de taille indéfini et elle ne touche plus au fichier source donc plus de risque de perte de donner. voila j'espère que sa serra mieu comme ça ^^
- 05 mai 2008 15:37:52 :
- ...
- 05 mai 2008 15:41:09 :
- ...
- 07 mai 2008 23:47:44 :
- cette fois c'est bon il est pour une ponctuation française le mode graphique est en route.
- 07 mai 2008 23:49:38 :
- une ptite faute
Sources de la même categorie
Commentaires
Discussions en rapport avec ce code source
|
Téléchargements
Logiciels à télécharger sur le même thème :
|
|