Accueil > > > CORRECTEUR DE PONCTUATION
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;
- 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--;
}
}
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
- 19 mai 2008 20:31:21 :
- correction d'un petit bug
pour le mode graffique :
http://www.cppfrance.com/codes/BOOK-MON-CORRECTEUR-WIN32_46711.aspx
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Pointeur et référence [ par kawazaki ]
Bonjour je commence a programmer en c++ je voudrais comprendre quand j'utilise les pointeurs et les références ainsi que les déclarations:*var**var&va
Pointeur qui fait planter Windows !!! [ par coyito ]
Salutquand je défini moi même une addresse pour un pointeur (exemple pour lire n'importe ou dans la mémoire) j'ai une erreur windows "access violation
Switch et char [ par Stoomm ]
Bonjour,Si j'ai :char test[10];strcpy (test, "monchar ";Si je souhaite faire un switch : Je fais comment ???switch (test){...}Il aime pas ! Quelqu'un
Pointeur sur methodes avec parametre [ par Kinamstrong ]
Salut a toi,Je cherche à savoir comment marche les pointeurs sur les methodes avec parametres.Qu'est ce qui va differencier deux meme methodes en cour
tableau et pointeur [ par cognac ]
Bonjour,Je tente de faire apparaitre les mois de l'année (simple mais pour un débutant....). Bon il y a toujours "cout"12 fois mais j'ai pensé à un ta
je comprend plus rien(pointeur) [ par bidules ]
Bonjour,Pour moi on utilise les pointeur pour creer des tableau dynamiquement.or j'ai reussi a en declarer un avec une taille entrer a l'aide d'une va
Probleme de Débutant [ par Dorgendubal ]
Hello à tous,j'ai déjà programmé en C++ et même avec des envirronements graphiques (comme QT sous linux) mais jamais avec Visual C++.Alors j'ai un pro
!! URGENT : Correcteur orthographique [ par Ricpperso ]
Bonjour @ tous,je suis en train de créer un traitement de texte style Word Pad, mais en amélioré, en fait je transcrive le logiciel que j'avais déjà f
Probleme complique sur pointeur mais reponse simple surement [ par MrKribou ]
Un probleme de pointeur je pense.Je vous expose la situation :Dans une Classe (ClassEx) voila je fais un truc du genre :char* pChar = this->getInfo
le pointeur de souris. [ par Pyou ]
Bonjour ! J'aimerais savoir comment faire pour ne pas afficher le pointeur la de souris par defaut dans ma fenetre opengl, puisque je veux en afficher
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|