Extraire chaine

kelm_by Messages postés 296 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 21 novembre 2008 - 24 févr. 2007 à 01:01
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 24 févr. 2007 à 15:37
salut,
je ve extraire tous les mots entre @ et > mais ce code n'extrait que la premier chaine sos svp merci d'avence

nStart = InStr(1, sBuffer, "@", vbBinaryCompare)
nEnd = InStr(1, sBuffer, ">", vbBinaryCompare)


If nStart > 0 And nEnd > 0 Then art = Mid$(sBuffer, nStart + 1, nEnd - nStart - 1)


List1.AddItem art


Close #ff

9 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 févr. 2007 à 01:10
salut,
http://www.codyx.org/snippet_split-sur-plusieurs-criteres_233.aspx

++
PCPT  [AFCK]
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
kelm_by Messages postés 296 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 21 novembre 2008
24 févr. 2007 à 02:10
ca marche pas

a = MultiSplit("Function  MultiSplit(ByVal sStr As String, bKeepSepar As Boolean, ParamArray aArray()) As  String()", _
          True, "@", ">", "@", ">")
         
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 févr. 2007 à 02:30
houla!!!!
c'est pourtant écrit "EXEMPLE D'UTILISATION" ......

pour toi çà donnerait :

dim a() as string
a=MultiSplit(MaChaineAAnalyser,false,"@",">")

et ensuite tu as tes éléments dans le tableaux a

++
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 févr. 2007 à 02:31
ps : code pour VB6, comme tes instr mid$ etc..... (rubrique?)
0

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

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
24 févr. 2007 à 02:32
lol

salut,

remplace en gras par ta chaine de caractère :

a = MultiSplit( "Function  MultiSplit(ByVal sStr As String, bKeepSepar As Boolean, ParamArray aArray()) As  String()" , _
          True, "@", ">", "@", ">")

et en rouge, c'est inutile, tu l'as déjà mis..

Exemple :

' EXEMPLE  D'UTILISATION
Private Sub Form_Load()
    Dim a$(), i%
    a  = MultiSplit("toto>tata@sboub.com", _
          True, "@", ">")
          
    For i =  0 To UBound(a)
        Debug.Print a(i)
    Next i
End Sub

~ <small> Mortalino ~ Colorisation automatique </small>

@++

<hr width ="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
24 févr. 2007 à 02:33
Arf, salut PCPT,

désolé, Poste croisé..

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 févr. 2007 à 03:11
trop de breuvage fait des ravages ^^
0
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
24 févr. 2007 à 15:27
Salut,

Essaye ca pour voir :

      Dim n1 As Integer
   Dim n2 As Integer
   Dim machaine As String

   n1 = Instr(1, sBuffer, "@")
   n2 = Instr(1, sBuffer, ">")
   machaine = Mid(sBuffer, n1+1, n1 - n2)
      ' Mid(variable de type string, début, nombre de caractères retournés)

      ' Exemple :

      '  sBuffer = "xxxx@xxxxx>xxx"
      '  n1 = 5      n2 = 11
      '  Il faut prendre les caractères entre @ et > : donc du 6° caractère jusqu'au caractère avant le > ( début = n1 + 1 )
      ' Ici, on peut voir qu'il y a 5 caractères dans sBuffer entre @ et >
      ' donc le nombre de caractères retournés doit être ' n1 - n2 - 1 ' c'est à dire 11 - 5 - 1 = 6 - 1 = 5

(Colorationsyntaxique automatique par Kenji)

N'oubliez pas d'accepter la réponse si elle a résolu votre problème  
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 févr. 2007 à 15:37
fauve
-> la demande n'est pas uniquement de récupérer ce qu'il y a entre @ et > mais aussi avant et après
0
Rejoignez-nous