begin process at 2010 02 09 22:42:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

Echange des caractères accentués par leurs homologues non accentués


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Echange des caractères accentués par leurs homologues non accentués

samedi 29 janvier 2005 à 14:34:52 | Echange des caractères accentués par leurs homologues non accentués

lonaur

Voilà j'ai un petit problème. Je lis un fichier et je supprime tous les caractères de ponctuation. Le problème c'est que lorsque je rencontre un caractère accentué, la fonction ispunct() ne marche pas. Du coup, j'aimerais pouvoir lire un texte dans un fichier en supprimant tous les caractères accentués pour les remplacer par un caractère non accentué. Par exemple, si j'ai dans mon fichier

Un été superbe.
 
j'aimerais lire en fait

Un ete superbe.

Je ne sais pas si c'est très clair mais j'ai vraiment besoin de votre aide.
Merci d'avance à celles et ceux qui me répondront.
samedi 29 janvier 2005 à 14:54:06 | Re : Echange des caractères accentués par leurs homologues non accentués

BruNews

Administrateur CodeS-SourceS
if(buff[i] == 'é') buff[i] = 'e';
c'est quoi le problème ???

ciao...
BruNews, MVP VC++
samedi 29 janvier 2005 à 14:57:02 | Re : Echange des caractères accentués par leurs homologues non accentués

lonaur

Il faut que de fasse toute une cascade de if pour pouvoir prévoir tous les cas des caractères spéciaux. C'est un peu long quand même mais bon pas de choix alors
samedi 29 janvier 2005 à 15:04:09 | Re : Echange des caractères accentués par leurs homologues non accentués

BruNews

Administrateur CodeS-SourceS
switch(buff[i]) {
 case 'é': case 'è': etc....
   buff[i] = 'e'; break;
  .....

ciao...
BruNews, MVP VC++
samedi 29 janvier 2005 à 15:23:50 | Re : Echange des caractères accentués par leurs homologues non accentués

Hades53

Membre Club
En moins bourrin, on peut voir le truc sous cette forme:

if (buff[i] > 231 && buff[i] < 236) buf[i] = 'e'; //accents des "e" minuscules
else if (buff[i] > 223 && buff[i] < 230) buff[i] = 'a'; //accents des "a" minuscules
else if (buff[i] > 209 && buff[i] < 215) buff[i] = 'O'; //accent des "O" majucules
...
mardi 1 février 2005 à 10:09:32 | Re : Echange des caractères accentués par leurs homologues non accentués

magic_Nono

Membre Club

Joli Hades....


voici la fonction dont il pourra s'inspirer directement:
promis, je la reprend prochainement a ta façon Hades
++

___

void BString::convertEnMajuscule()
{
/// ---------------------------------------------------------------
/// ---------------- BString::convertEnMajuscule() ----------------
/// ---------------------------------------------------------------
/// -----  Objectif : convertir la chaîne en majuscule
/// -----  Auteur(s) : Magic Nono 03/01/04
/// -----  PreCond : texte avec les caracrères d'usage Français
/// -----  PostCond : /
/// -----  Etat  : 1   (-1<0<1<2)
/// -----  Nota 03/01/04 : uniquement les car minuscules...
/// -----  MaJ 17/05/04 : conversion des caractères accentués français et du C cédille
/// ---------------------------------------------------------------
/// -----  Var Utilisées de la classe (2) : m_iTaille ,m_str
/// -----  Var Internes à la fonction (3) : c ,cste ,i
/// -----  Var Utilisées par adresse (1) : m_str
/// -----  Var Masquées (1) : m_str
/// -----  Var In  (1) : m_iTaille
/// -----  Var In-Out (1) : m_str
 static const char cste='A'-'a';
 char c;
 size_t i;
 for(i=0;i<m_iTaille;i++)
 {
  c=m_str[i];
  if(c>='A'&&c<='Z')
   ; //ne rien faire !!
  else
  if(c>='a'&&c<='z')
   m_str[i]=(char)(c+cste); //transtypage pour éviter warning...
  else
   switch(c)
   {
   case'à':
   case'â':
   case'ä':
    m_str[i]='A';
    break;
   case'é':
   case'è':
   case'ê':
   case'ë':
    m_str[i]='E';
    break;
   case'ï':
   case'î':
    m_str[i]='I';
    break;
   case'ö':
   case'ô':
    m_str[i]='O';
    break;
   case'ü':
   case'û':
   case'ù':
    m_str[i]='U';
    break;
   case'ç':
    m_str[i]='C';
    break;
   }
 }
}

___
Magic Nono: l'informagicien!



Cette discussion est classée dans : fichier, caractères, echange, accentués, homologues


Répondre à ce message

Sujets en rapport avec ce message

manipulation fichier texte [ par bencholl ] I / Utilisation de fichiers texteLe fichier "Etud_2002.don" comporte des lignes ainsi structurées (le caractère ';' est utilisé comme séparateur) : NO Utilisation Dev C++ et nom de fichier dynamique [ par briscard ] Bonjour a tous,j'ai un petit problème avec Dev C++, je n'arrive pas a implémenter un vecteur de caractères. je n'ai pas de code sous la main car j'ai Pdf et unicode [ par wizouille ] Je dois créer un fichier pdf écrit en asiatique.j'ai un fichier xml en UTF-8 qui me donne les valeurs des caractères à imprimer.Mais je n'y arrive pa è, é, ë devient e [ par mimieivd ] Existe-t-il une fonction en C qui me permet de transformer mes caractères accentués en caractères non accentués ?Idem pour transformé des lettre MAJ e fonctions [ par pingooo ] Bonjour tout le monde !VOici mon problème: je travaille en C, et je veux faire un logiciel de résolution d'équa diff avec Runge Kutta...jusque là, ça recherche une chaine de caractères dans un fichier [ par Tamahoma ] Bonjour, Je voudrais rechercher une chaine de caractères dans un fichier, il prend le début de cette chaine jusqu'à ce qu'il rencontre le symbole : '> POST caractères accentués [ par scorpyon1903 ] Salut !J'ai écrit un programme en VC++ qui récupère les données d'un formulaire HTML via la méthode POST. Mon problème c'est que les caractères spécia caractères accentués [ par la pince ] Bonjour Je suis débutant en C++ et je suis confronté à un pb qui doit être simple pour vous (enfin je l'espère) Contexte :J'ai besoin pour réaliser u lecture chaines de caractères dans un fichier [ par sandy27 ] je veux lire dans un fichier des chaines de caractères qui vont contenir d'autres fichiers dont je devrai lire les données par la suite. Exemple: nom_ Lire TOUT les caractères d'un fichier binaire [ par harddisk ]


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales