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

Messages postés
724
Date d'inscription
dimanche 26 novembre 2006
Dernière intervention
23 janvier 2013
- 6 nov. 2007 à 10:09 - Dernière réponse :
Messages postés
724
Date d'inscription
dimanche 26 novembre 2006
Dernière intervention
23 janvier 2013
- 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
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Dernière intervention
10 octobre 2013
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de mstarsup5
Meilleure réponse
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de cs_casy
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
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
Messages postés
724
Date d'inscription
dimanche 26 novembre 2006
Dernière intervention
23 janvier 2013
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
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Dernière intervention
10 octobre 2013
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
Messages postés
724
Date d'inscription
dimanche 26 novembre 2006
Dernière intervention
23 janvier 2013
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
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Dernière intervention
10 octobre 2013
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
Messages postés
724
Date d'inscription
dimanche 26 novembre 2006
Dernière intervention
23 janvier 2013
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
Messages postés
724
Date d'inscription
dimanche 26 novembre 2006
Dernière intervention
23 janvier 2013
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
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Dernière intervention
10 octobre 2013
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
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Dernière intervention
10 octobre 2013
6 nov. 2007 à 11:16
0
Merci
oups, substring, et pas setstring.. -_-
Commenter la réponse de mstarsup5
Messages postés
724
Date d'inscription
dimanche 26 novembre 2006
Dernière intervention
23 janvier 2013
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.