Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
722 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBS][RESOLU] Fonction "Replace" non-case-sensitive

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBS][RESOLU] Fonction "Replace" non-case-sensitive

n°1254621
madmartiga​n
Desperate Houseman
Posté le 28-11-2005 à 12:54:11  profilanswer
 

Salut,
 
j'ai besoin de faire un Search&Replace dans une chaine qui ne soit pas Case sensitive...
 
La fonction

Replace([i]Source[/i],[i]Search[/i],[i]Replace[/i])

considère différentes les chaines "mon nom" "Mon Nom" "MON NOM"... et dans mon cas, c'est ennuyeux
 
J'ai essayé de fair une Resultat = Replace(UCase(Source),UCase(Search),Replace) mais cela fait passer toute la chaine Resultat en UCase ce qui n'est pas le but de la manoeuvre.
 
Je ne vois plus comme solution que d'écrire entièrement une fonction qui fasse une comparaison caractere par caractere (ce qui me permet pour chaque caractere de tester les 2 possibilités

if lcar=car then ...
if lcar=UCase(car) then ...


en bouclant sur la longueure du paramètre Search à la première occurente trouvée
(La chaine à tester peut ressempler à AbCDefgHIJKlMon NOMopqrst)
Mais c'est super laborieux !  :sleep:  
 
Quelqu'un connait il un meilleur moyen ?


Message édité par madmartigan le 28-11-2005 à 13:24:38

---------------
Mieux vaut fermer sa gueule et passer pour un con, plutot que de l'ouvrir, et montrer qu'on l'est...
mood
Publicité
Posté le 28-11-2005 à 12:54:11  profilanswer
 

n°1254634
madmartiga​n
Desperate Houseman
Posté le 28-11-2005 à 13:33:03  profilanswer
 

:heink: OK, j'ai trouvé...
la fonction Replace admet d'autres arguments
 
Replace(Source,Searche,Replace,Start,Count,Type).
Type = 0 pour une comparaison binaire (donc Case sensitive)
Type = 1 pour une comparaison texte (donc case non-sensitive)
J'avais déjà essayé un

Replace("EssaY de replace","AY","ai",,,1)


et je tombais sur un "error type mismatch"  :heink:  
 
En fait, les trois derniers params semblent indissociables : soit on les met tous, soit aucun.
 
avec un

Replace("EssaY de replace","AY","AI",1,-1,1)


ça marche...
 :hello:


---------------
Mieux vaut fermer sa gueule et passer pour un con, plutot que de l'ouvrir, et montrer qu'on l'est...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBS][RESOLU] Fonction "Replace" non-case-sensitive

 

Sujets relatifs
[resolu] arrondi d'un décimaltrouver une date en access en fonction d'un certain nb de jours
RESOLU coller des formules ss lien de fichier[Résolu] Exécution sous unix
Problème avec la fonction OnTimer() sous vc++[Js] Appeller la fonction d'une autre page (iframe)
[RESOLU] Transmission de variable entre deux pages PHP ?supprimer une feuille (résolu)
[VBS] Questions à 2 balles (0.30€) pour ultra-débutants[Résolu] Fonction Execlp avec nombre parametres variable
Plus de sujets relatifs à : [VBS][RESOLU] Fonction "Replace" non-case-sensitive


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR