Remplacer les accent par des lèttre simple

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Remplacer les accent par des lèttre simple

Message par dayvid »

Petite procedure pour remplacer les accents dans une chaine par leur equivalent en lettre simple

Code : Tout sélectionner

Procedure.s ReplaceAccents(Chaine$)
  Chaine$ = ReplaceString(Chaine$, "Œ", "OE")
  Chaine$ = ReplaceString(Chaine$, "æ", "ae")
  Chaine$ = ReplaceString(Chaine$, "œ", "oe")
  Chaine$ = ReplaceString(Chaine$, "µ", "u")
  Chaine$ = ReplaceString(Chaine$, "Ÿ", "Y")
  Chaine$ = ReplaceString(Chaine$, "À", "A")
  Chaine$ = ReplaceString(Chaine$, "Á", "A")
  Chaine$ = ReplaceString(Chaine$, "Â", "A")
  Chaine$ = ReplaceString(Chaine$, "Ã", "A")
  Chaine$ = ReplaceString(Chaine$, "Ä", "A")
  Chaine$ = ReplaceString(Chaine$, "Å", "A")
  Chaine$ = ReplaceString(Chaine$, "Æ", "AE")
  Chaine$ = ReplaceString(Chaine$, "Ç", "C")
  Chaine$ = ReplaceString(Chaine$, "È", "E")
  Chaine$ = ReplaceString(Chaine$, "É", "E")
  Chaine$ = ReplaceString(Chaine$, "Ê", "E")
  Chaine$ = ReplaceString(Chaine$, "Ë", "E")
  Chaine$ = ReplaceString(Chaine$, "Ì", "I")
  Chaine$ = ReplaceString(Chaine$, "Í", "I")
  Chaine$ = ReplaceString(Chaine$, "Î", "I")
  Chaine$ = ReplaceString(Chaine$, "Ï", "I")
  Chaine$ = ReplaceString(Chaine$, "Ò", "O")
  Chaine$ = ReplaceaString(Chaine$, "Ó", "O")
  Chaine$ = ReplaceString(Chaine$, "Ô", "O")
  Chaine$ = ReplaceString(Chaine$, "Ö", "O")
  Chaine$ = ReplaceString(Chaine$, "Ù", "U")
  Chaine$ = ReplaceString(Chaine$, "Ú", "U")
  Chaine$ = ReplaceString(Chaine$, "Û", "U")
  Chaine$ = ReplaceString(Chaine$, "Ü", "U")
  Chaine$ = ReplaceString(Chaine$, "Ý", "Y")
  Chaine$ = ReplaceString(Chaine$, "Þ", "P")
  Chaine$ = ReplaceString(Chaine$, "ß", "B")
  Chaine$ = ReplaceString(Chaine$, "à", "a")
  Chaine$ = ReplaceString(Chaine$, "á", "a")
  Chaine$ = ReplaceString(Chaine$, "â", "a")
  Chaine$ = ReplaceString(Chaine$, "ä", "a")
  Chaine$ = ReplaceString(Chaine$, "å", "a")
  Chaine$ = ReplaceString(Chaine$, "ç", "c")
  Chaine$ = ReplaceString(Chaine$, "è", "e")
  Chaine$ = ReplaceString(Chaine$, "é", "e")
  Chaine$ = ReplaceString(Chaine$, "ê", "e")
  Chaine$ = ReplaceString(Chaine$, "ë", "e")
  Chaine$ = ReplaceString(Chaine$, "ì", "i")
  Chaine$ = ReplaceString(Chaine$, "í", "i")
  Chaine$ = ReplaceString(Chaine$, "î", "i")
  Chaine$ = ReplaceString(Chaine$, "ï", "i")
  Chaine$ = ReplaceString(Chaine$, "ò", "o")
  Chaine$ = ReplaceString(Chaine$, "ó", "o")
  Chaine$ = ReplaceString(Chaine$, "ô", "o")
  Chaine$ = ReplaceString(Chaine$, "ö", "o")
  Chaine$ = ReplaceString(Chaine$, "ù", "u")
  Chaine$ = ReplaceString(Chaine$, "ú", "u")
  Chaine$ = ReplaceString(Chaine$, "û", "u")
  Chaine$ = ReplaceString(Chaine$, "ü", "u")
  Chaine$ = ReplaceString(Chaine$, "ý", "y")
  Chaine$ = ReplaceString(Chaine$, "þ", "p")
  Chaine$ = ReplaceString(Chaine$, "ÿ", "y")
  
  ProcedureReturn Chaine$
EndProcedure
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
Mindphazer
Messages : 695
Inscription : mer. 24/août/2005 10:42

Re: Remplacer les accent par des lèttre simple

Message par Mindphazer »

Regarde bien la ligne 24 de ta procédure..... :?
Bureau : Win10 64bits
Maison : Macbook Pro M3 16" SSD 512 Go / Ram 24 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: Remplacer les accent par des lèttre simple

Message par case »

pas très optimisé quand même, a chaque fois que tu fais un replacestring pb il fait toute la chaine a la recherche de celui ci...
ImageImage
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: Remplacer les accent par des lèttre simple

Message par Chris »

C'est tellement plus simple de passer par une liste chainée. :roll:
bombseb
Messages : 445
Inscription : jeu. 25/août/2005 22:59
Localisation : 974
Contact :

Re: Remplacer les accent par des lèttre simple

Message par bombseb »

ou un select....

surtout que ca ne m'étonnerais pas qu'il y ait une api pour faire ca non ?
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Remplacer les accent par des lèttre simple

Message par falsam »

Code : Tout sélectionner

Procedure.s DisableAccent(Buffer.s)
  Protected i
  Protected CharToFind.s="àáâãäåçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝŸ"
  Protected CharToReplace.s="aaaaaaceeeeiiiinooooouuuuyyAAAAAACEEEEIIIINOOOOOUUUUYY"

  For i=1 To Len(CharToFind) 
   ReplaceString(Buffer, Mid(CharToFind,i,1), Mid(CharToReplace,i,1),#PB_String_InPlace, 1)
  Next
  ProcedureReturn Buffer
EndProcedure

Debug DisableAccent("Débâcher , DÉBOÎTER")

Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Remplacer les accent par des lèttre simple

Message par dayvid »

Merci Falsam :P
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Répondre