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

Signaler
Messages postés
724
Date d'inscription
dimanche 26 novembre 2006
Statut
Membre
Dernière intervention
23 janvier 2013
-
Messages postés
724
Date d'inscription
dimanche 26 novembre 2006
Statut
Membre
Dernière intervention
23 janvier 2013
-
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

12 réponses

Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
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 "
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
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
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
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
Messages postés
724
Date d'inscription
dimanche 26 novembre 2006
Statut
Membre
Dernière intervention
23 janvier 2013
2
Ok, je vais essayé et je te tiens au courrant^^

ebaudoux@club.fr
http://www.velersoftware.fr.nf
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
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
Messages postés
724
Date d'inscription
dimanche 26 novembre 2006
Statut
Membre
Dernière intervention
23 janvier 2013
2
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
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
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 :)
Messages postés
724
Date d'inscription
dimanche 26 novembre 2006
Statut
Membre
Dernière intervention
23 janvier 2013
2
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
Messages postés
724
Date d'inscription
dimanche 26 novembre 2006
Statut
Membre
Dernière intervention
23 janvier 2013
2
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
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
utilise setstring puisque tu es en VB2005, pas mid (qui ne marche qu'en vb6 apparament)
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
oups, substring, et pas setstring.. -_-
Messages postés
724
Date d'inscription
dimanche 26 novembre 2006
Statut
Membre
Dernière intervention
23 janvier 2013
2
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