Chaîne de caractère

Résolu
gouzou44 Messages postés 33 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 5 février 2009 - 9 nov. 2007 à 21:17
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 10 nov. 2007 à 16:09
Je suis bientôt à la fin de mon programme, mais il me manque une dernière chose.
Je voudrais bien extraire une chaine de caractère à l'interieur d'une autre.
Voici le problème:

Chaîne de caractère d'origine: g:\jeux\jeux1\jeux1.exe
Chaîne de caractère désiré: g:\jeux\jeux1\

ou

g:\jeux2.exe
g:\

Le problème est que le nombre de \ n'est pas constant. Alors comment faire pour extraire tout la chaîne précédent le dernier \ ????? Merci de votre aide

9 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 nov. 2007 à 21:32
InStrRev pour trouver le premier \ en partant de la fin.

Ensuite un Left pour extraire tout ce qui est à gauche, en prenant comme longueur le résultat précédent -1

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
9 nov. 2007 à 21:32
Bonsoir,

Utilise donc InstRev avec le caractère "". C'est tout !...
0
gouzou44 Messages postés 33 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 5 février 2009
9 nov. 2007 à 21:52
J'ai juste eu a rajouter un Mid et c'est nickel merci
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
9 nov. 2007 à 23:18
rajouté un mid ? Inutile ! La solution de Casy est correcte et complète !
Par curiosité, tu as codé quoi ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
10 nov. 2007 à 09:42
 Bonjour à tous,

Ce qui donne:

chemin_complet = "D:\Mes scripts VBFrance\Test\Fichiers\mon fichier.txt"

MsgBox Left(chemin_complet,Len(chemin_complet)-Len(Mid(chemin_complet, InStrRev(chemin_complet, "") + 1))) &vbCrLf& _
             Mid(chemin_complet, InStrRev(chemin_complet, "") + 1)

jean-marc
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
10 nov. 2007 à 11:30
Bonjour Jean-Marc,

Pourquoi recalculer avec le len ?

 MsgBox Mid(chemin_complet, 1, InstrRev(chemin_complet, "")) & vbCrLf & Mid(chemin_complet, InstrRev(chemin_complet, "") + 1)
0
gouzou44 Messages postés 33 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 5 février 2009
10 nov. 2007 à 11:48
Voilà ce que j'ai utilisé. Marche nickel

repertoire = Mid(wbExcel.Worksheets(1).Cells(j, 4), 1, InStrRev(wbExcel.Worksheets(1).Cells(j, 4), "", -1))
ShellExecute vbNull, "open", exe, vbNull, repertoire, SW_SHOWNORMAL
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
10 nov. 2007 à 12:02
ouais !
Plutot que de faire un mid(ch, 1, L), fais simplement un left(ch, L), cela marchera de ma même façon et sera plus simple à lire
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
10 nov. 2007 à 16:09
 Bonjour à tous,

Bonjour Jacques,
Entièrement raison, je me suis emporté !

jean-marc
0
Rejoignez-nous