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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp WIN APIWIN API par omarino_007
Cliquez pour lire la suite par omarino_007
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|