InstrRev ne fonctionne plus :-( [Résolu]

ZedMaTrix 178 Messages postés vendredi 25 octobre 2002Date d'inscription 14 août 2008 Dernière intervention - 28 févr. 2007 à 09:43 - Dernière réponse : ZedMaTrix 178 Messages postés vendredi 25 octobre 2002Date d'inscription 14 août 2008 Dernière intervention
- 28 févr. 2007 à 09:54
Hello à tous !

Ca fait un monent que InstrRev chez moi ne fonctionne plus !
Il fais exactement la même chose que Instr tout court.

Par exemple, si je fais un truc du genre :

Dim lstrMyStr as String

lstrMyStr = "Hello World ! zed"

MsgBox Right( lstrMyStr, InstrRev( lstrMyStr, "!" ) )

Il me met un message box contenant "o World ! zed" ( InstrRev à retourné le nombre 13 au lieu de 5 )

Comment ca se peut ca ??

ZedMaTriX
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
linasteph 153 Messages postés lundi 16 décembre 2002Date d'inscription 22 juillet 2009 Dernière intervention - 28 févr. 2007 à 09:51
3
Merci
Salut,

En fait cela te donne la position dans la chaîne du premier caractères xxx mais en partant de la fin de la chaîne vers le début.
Ici Instr and InstrRev donne le même résultat vu que'il n'y a qu'un seul caractère ! dans ta chaîne.

Si tu veux récupérer ce qu'il y a à droite du caractère !, utilise MsgBox Right(lstrMyStr, Len(lstrMyStr) - InStrRev(lstrMyStr, "!"))

@+

Merci linasteph 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de linasteph
Meilleure réponse
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 28 févr. 2007 à 09:51
3
Merci
InstrRev fonctionne donc correctement.

InStrRev te retourne l'index du premier caractère rencontré correspondant au caractère passé en paramètre. Le Rev ne signifie aucunement que le comptage des index commence à la fin. C'est juste la recherche qui commence par la fin.

Il est donc tout à fait normal que InStrRev te renvoie 13.

Si tu veux effectivement avoir l'index en partant de la fin, il faut faire Len(lstrMyStr)-InstrRev( lstrMyStr, "!" )

Si tu veux seulement récupérer les derniers caractères tu peux aussi (et même plutot) utliser la fonction Mid à la place de Right.

Dim lstrMyStr as String

lstrMyStr = "Hello World ! zed"

MsgBox Mid( lstrMyStr, InstrRev( lstrMyStr, "!" ) )

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_casy
ZedMaTrix 178 Messages postés vendredi 25 octobre 2002Date d'inscription 14 août 2008 Dernière intervention - 28 févr. 2007 à 09:52
0
Merci
Aprés quelques tests, je m'apercoie que InStr me renvoie la position du premier '!' tout comme InStrRev car il n'y a que un '!'
Parcontre si j'en place un deuxième, il me donne bien le dernier.

Enffet je vient de comprend mon erreur....

J'ai mal compris le fonctionnement de la fonction.
Je pensais que InStrRev lisais notre chaine en partant de la fin vers le début, et donc retournais la position en partant de la fin du premier '!'...

Bon donc c'est moi le problème

ZedMaTriX
Commenter la réponse de ZedMaTrix
ZedMaTrix 178 Messages postés vendredi 25 octobre 2002Date d'inscription 14 août 2008 Dernière intervention - 28 févr. 2007 à 09:54
0
Merci
ha bha j'avais pas vue vos réponses

Merci beaucoup à tout les deux !

ZedMaTriX
Commenter la réponse de ZedMaTrix

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.