Copier une partie d'un texte

Résolu
stuntman_91 Messages postés 54 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 14 juillet 2007 - 4 mars 2007 à 17:08
stuntman_91 Messages postés 54 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 14 juillet 2007 - 4 mars 2007 à 20:43
salut!
Alors voilà je vous explique mon problème:
j'ai une chaine de caractères dont je veux copier uniquement la partie comprise entre 2 mots définis.
Du coup j'ai fais çà:

Dim a As String
Dim b As String
a = InStr(Chaine, "mot1")
b = InStr(Chaine, "mot2")

j'ai donc la position du premier caractère du mot1 (a) et du mot2 (b)
Et je voudrais savoir comment copier les caractères compris entre a et b

merci d'avance

6 réponses

Utilisateur anonyme
4 mars 2007 à 17:11
Salut,

En utilisant la fonction Mid :
Mid$(Chaine, a, b - a)






__________
Kenji
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 mars 2007 à 18:53
salut,
sous forme de fonction çà donne çà :
http://www.codyx.org/snippet_recuperer-chaine-inconnue-placee-entre-deux-chaines-connues_334.aspx
++
PCPT  [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
3
stuntman_91 Messages postés 54 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 14 juillet 2007
4 mars 2007 à 19:27
merci pour votre aide!
mais j'ai un autre problème maintenant! lol
J'ai essayé de faire un InStr sur une chaine avec plus de 50000 caractères et çà ne marche pas.
Est ce que la fonction InStr est limité en nombre de caractères à analyser?
Ou alors est ce qu'il y a une autre méthode?
merci
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
4 mars 2007 à 19:41
Salut,

InStr est une fonction de type Long. Tu as de la marge...
Tu dois mal utiliser la fonction, regarde avec un mot de cent mille cinq caractères ;

Sub EXEMPLE()
    Dim sWord As String
    
sWord = Space(100000) & "salut"
MsgBox Len(sWord) 'retourne 100005

If InStr(1, sWord, "salut") > 0 Then
    MsgBox "Position du mot ~salut~ :
" & InStr(1, sWord, "salut") 'retourne 100001
Else
    MsgBox "Le mot ~salut~ n'est pas dans la chaine sWord"
End If

End Sub


~ <small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0

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

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 mars 2007 à 20:08
çà sert à rien de se casser la tête à pondre des snippets puisqu'ils ne sont pas lus

a = InStr( Chaine , "mot1")
lPosL  = 
InStr(Start, Expression, sLeft)
InStr(1, sWord, "salut")

y'a un argument de différent non?.....

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
stuntman_91 Messages postés 54 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 14 juillet 2007
4 mars 2007 à 20:43
je suis franchement désolé de vous avoir dérangés pour rien, c'était juste une erreur de code de ma part
Encore merci pour votre aide!!!
à bientôt ;-)
0
Rejoignez-nous