Récupérer un texte entre 2 caractères [Résolu]

cs_veler 724 Messages postés dimanche 26 novembre 2006Date d'inscription 23 janvier 2013 Dernière intervention - 6 nov. 2007 à 10:09 - Dernière réponse : cs_veler 724 Messages postés dimanche 26 novembre 2006Date d'inscription 23 janvier 2013 Dernière intervention
- 6 nov. 2007 à 11:25
Bonjours,

dans un fichier ou textbox, j'ai une ligne dans lequel j'ai un texte entre guillmet. Comment faire pour récupérer le texte qui est entre ces guillmet? J'y arrive pas.

Merci
a+

ebaudoux@club.fr
http://www.velersoftware.fr.nf
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
mstarsup5 527 Messages postés lundi 15 octobre 2007Date d'inscription 10 octobre 2013 Dernière intervention - 6 nov. 2007 à 11:07
3
Merci
veler, une fois que t'as la première position, avec substring garde juste la chaine qui commence du premier " jusqu'à la fin.
Ensuite, calcule la 2ème position avec indexof, et enfin, extraits du début de ta seconde chaine jusqu'à ton 2ème "

Merci mstarsup5 3

codes-sources a aidé 82 internautes ce mois-ci

Commenter la réponse de mstarsup5
Meilleure réponse
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 6 nov. 2007 à 11:18
3
Merci
Testé et approuvé :

        pos1 = ligne.IndexOf(""""c)
        pos2 = ligne.IndexOf(""""c, pos1 + 1)
        If (pos1 > 0) And (pos2 > 1) Then
            MessageBox.Show(ligne.Substring(pos1, pos2 - pos1))
        End If

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php

Merci cs_casy 3

codes-sources a aidé 82 internautes ce mois-ci

Commenter la réponse de cs_casy
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 6 nov. 2007 à 10:37
0
Merci
Tu fais une recherche pour récupérer l'index du premier " avec IndexOf
tu refais pareil mais en partant de l'index trouvé pour trouver le suivant.

Ensuite avec substring, tu récupère à partir du premier index et sur une longueur de Index2-Index1

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Commenter la réponse de cs_casy
cs_veler 724 Messages postés dimanche 26 novembre 2006Date d'inscription 23 janvier 2013 Dernière intervention - 6 nov. 2007 à 10:51
0
Merci
Ok, je vais essayé et je te tiens au courrant^^

ebaudoux@club.fr
http://www.velersoftware.fr.nf
Commenter la réponse de cs_veler
mstarsup5 527 Messages postés lundi 15 octobre 2007Date d'inscription 10 octobre 2013 Dernière intervention - 6 nov. 2007 à 11:00
0
Merci
Bizarre, ça marche pas substring et indexof chez moi (j'utilise vb6, c'est peut etre pour ça).
Si ça marche pas, utilise un mid$ à la place du substring:
mid$ (Tachaine, indexdepart, longueur)
et un instr à la place du indexof:
instr (Tachaine, "x")   ,  "x" étant le caractère dont tu recherches la position.

Je vais vérifier quand même encore pour le substring et le indexof, ça me chagrine que ça ne marche pas :x
Commenter la réponse de mstarsup5
cs_veler 724 Messages postés dimanche 26 novembre 2006Date d'inscription 23 janvier 2013 Dernière intervention - 6 nov. 2007 à 11:04
0
Merci
Salut, j'ai récupérer le premier index:
                Position = ligne.IndexOf("""")

mais alors le second....:

                Position2 = ligne.IndexOf(Position)

nn, c'est pas ça....

                Chaine = Microsoft.VisualBasic.Left(ligne, position)
                Position2 = Chaine.IndexOf("""")

mmmm, ça va pas non plus...

ebaudoux@club.fr
http://www.velersoftware.fr.nf
Commenter la réponse de cs_veler
mstarsup5 527 Messages postés lundi 15 octobre 2007Date d'inscription 10 octobre 2013 Dernière intervention - 6 nov. 2007 à 11:05
0
Merci
Je viens de regarder, ça marche bien en .NET et VB 2005.
Si tu programmes en vb6, utilise les deux que j'ai données :)
Commenter la réponse de mstarsup5
cs_veler 724 Messages postés dimanche 26 novembre 2006Date d'inscription 23 janvier 2013 Dernière intervention - 6 nov. 2007 à 11:08
0
Merci
heins? ce que je viens d'envoyé? je suis en VB 2005, mmm, attendez, si j'ai cette chaine là:

Text "Ce texte est affiché dans la console"

c'est normale qu'il me renvoi 5 (ça, c'est le premier index, normale) et -1 (-1 étant l'index du second ")?

ebaudoux@club.fr
http://www.velersoftware.fr.nf
Commenter la réponse de cs_veler
cs_veler 724 Messages postés dimanche 26 novembre 2006Date d'inscription 23 janvier 2013 Dernière intervention - 6 nov. 2007 à 11:12
0
Merci
Au total, si je fais ça:

                Position = ligne.IndexOf("""")
                chaine = Microsoft.VisualBasic.Left(ligne, Position)
                Position2 = chaine.IndexOf("""")
                Dim m As String = Microsoft.VisualBasic.Mid(ligne, Position, Position2)
                MsgBox(m)

ça me dit que Position2 ne doit pas être inférieur ou égale à 0 (normale, ici, il fait -1)

ebaudoux@club.fr
http://www.velersoftware.fr.nf
Commenter la réponse de cs_veler
mstarsup5 527 Messages postés lundi 15 octobre 2007Date d'inscription 10 octobre 2013 Dernière intervention - 6 nov. 2007 à 11:16
0
Merci
utilise setstring puisque tu es en VB2005, pas mid (qui ne marche qu'en vb6 apparament)
Commenter la réponse de mstarsup5
mstarsup5 527 Messages postés lundi 15 octobre 2007Date d'inscription 10 octobre 2013 Dernière intervention - 6 nov. 2007 à 11:16
0
Merci
oups, substring, et pas setstring.. -_-
Commenter la réponse de mstarsup5
cs_veler 724 Messages postés dimanche 26 novembre 2006Date d'inscription 23 janvier 2013 Dernière intervention - 6 nov. 2007 à 11:25
0
Merci
A, ça y est, j'ai trouvé!!!:

                Position = ligne.IndexOf("""") + 1
                chaine = ligne.Substring(Position, Len(ligne) - Position)
                Position2 = chaine.IndexOf("""")

                Dim m As String = ligne.Substring(Position, Position2)
                MsgBox(m)

ça fonctionne, allé, j'accepte quand même t'as réponse Casy, car elle fonctionne aussi, et puis mstarsup5 aussi, tu m'as bien aidée aussi.
merci de votre aide

a+^^

ebaudoux@club.fr
http://www.velersoftware.fr.nf
Commenter la réponse de cs_veler

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.