Récupéré une chaine de caractère situé entre 2 chaines
mySQL15
Messages postés79Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention28 août 2010
-
6 juil. 2010 à 17:40
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
6 juil. 2010 à 23:41
Bonjour/bonsoir
hum voila enfaite je sais pas comment mi prendre pour récupéré une chaine de caractère d'une page internet.
Le contexte et simple, j'affiche la source d'une page html dans une boite de texte et et je prend une chaine le probleme c'est que la chaine change a chaque fois (c'est une session) Par contre il y a des bout de code autour qui sont fixe
le principe ça serais de trouvé deux chaine de caractère fixe une qui indiquerai le début, et une autre la fin
entre les deux chaine on prend le texte
exemple:
4d5q4d5sqd4sq5d4s5qd4sqd5sqdqs5d
on trouve "" et on trouve "
" ce qu'il y a entre la balise on l'extrais dans une autre textbox (4d5q4d5sqd4sq5d4s5qd4sqd5sqdqs5)
j'ai regardé quelque code sur vbfrance (http://www.vbfrance.com/codes/PROGRAMME-TV_34605.aspx) mais je comprend pas grand chose
la fonction replace(), impensable vue toute la longueur du code source de la page html...
split() peut être ?
Merci.
A voir également:
Récupéré une chaine de caractère situé entre 2 chaines
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 6 juil. 2010 à 18:24
Salut
Pour faire ce que tu cherches à faire, il te suffit de savoir utiliser les fonctions de base :
- Instr pour rechercher une chaine dans une chaine
- Mid$ pour extraire une partie de la chaine
Exemple :
Debut = Instr(1, maChaine, "") ' Position du <
Fin = Instr(1, maChaine, "
") ' Position du <
EntreDeux = Mid$(maChaine, Debut, Fin - Debut)
Bien sûr, il y a un petit bug que je te laisse résoudre
Pour cela, suffit de bien comprendre à quoi sert chaque instruction et de suivre ce qu'elle retourne.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
NSUADI
Messages postés540Date d'inscriptionmardi 4 août 2009StatutMembreDernière intervention 1 février 20132 6 juil. 2010 à 19:46
ICONIC FIGURE
@jack:avec ta solution,si l'on considère la chaîne "je suis là
",il retourne la chaîne "je suis là"
en se basant sur ta solution,j'ai trouvé un palliatif pas très académique mais bon...
soit
dim d as string ="<h1>" 'd=chaine début
Debut = Instr(1, maChaine, d) ' Position du <
Fin = Instr(1, maChaine, "
") ' Position du <
EntreDeux = Mid$(maChaine, Debut + d.Length, Fin - Debut -D.Length)
textbox.Text=EntreDeux
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 6 juil. 2010 à 23:41
"Pas très académique" ?
C'est exactement ce qu'il fallait faire.
La méthode peu académique aurait été de mettre des chiffres en dur représentant la longueur de la première chaine recherchée.
Mais ça, c'est du VB.Net, pas du VB6.
Merci de préter plus d'attention à la catégorie de la question, on aurait pu vite s'embourber dans des exemples non compatibles.
En .Net, Mid$ à remplacer par .SubString, mais les index des caractères commencent à zéro, pas à 1.