Entre deux valeurs

[Résolu]
Signaler
Messages postés
181
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
9 avril 2010
-
Messages postés
181
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
9 avril 2010
-
Bonjour,

Je suis en train de m'arracher les cheveux sur un morceau de code qui me ralenti depuis au moins 24 heures !!

j'ai dans un fichier html du code html (normal )

et j'aimerais que mon programme arrive à me dire ce qu'il y à entre ça
<script type="text/javascript" src=" et "></script>

normalement il devrait trouver js.js

car c'est écrit ça en brut dans le fichier :

<script type="text/javascript" src="js.js"></script>

MERCI pour votre aide
123

15 réponses

Messages postés
181
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
9 avril 2010

ça fonctionne mais pas tout le temps :s en tout cas merci je vais voir ce que je peux faire avec ton code

bonne journée

123
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Salut
Oui, et comment fais-tu pour faire cette recherche ?
Note que, dans la chaine que tu recherches, il y a des ".
Donc, dans une syntaxe VB6 de Instr (par exemple), il faudra penser à doubler les " à l'intérieur de la chaine à rechercher.
Par exemple avec Replace(maChaineRecherchée, """", """""")

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
181
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
9 avril 2010

en fait c'est pour cherche sur des pages internet une certaine valeur donc je pensais faire 3 textbox 1 pour <script type="text/javascript" l'autre pour "></script> et le textbox3 pour récupérer le résultat :) en gros il faudrait une fonction je pense mais bon j'y connais pas grand chose :s

en tout cas merci d'avoir répondu

123
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
En supposant que le code html est dans une string nommée ... Buffer

Dim i As Long, J As Long, Valeur As String

i = Instr(Buffer, "<script type=""text/javascript"" src=""")
j = Instr(i, Buffer, """></script>"
Valeur = Mid$(Buffer, i + 35, j - i - 35)

Cela devrait te trouver la 1ere occurence de ce que tu recherches.
Attention, je n'ai pas intégré de gestion d'erreur au cas ou le texte recherché ne serait pas présent. A toi de voir si cela est nécessaire ou pas !
Messages postés
181
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
9 avril 2010

Merci Kristof_Koder mais je comprends pas trop ce que va faire ton script ? mon code HTML il est dans quel string dans ton code ? peux tu me montrer un exemple concret stp ?

Merci bcp en tout cas

123
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
Je pense pourtant que la 1ere ligne de mon 1er post est claire !
Je me cite : "En supposant que le code html est dans une string nommée ... Buffer"

C'ets donc dans une variable nommée Buffer que se trouve le code html à étudier. Je ne vois pas comment le dire autrement ?
Messages postés
181
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
9 avril 2010

en effet HONTE A MOI :)

je vais voir ça

123
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
Et quel sont les cas ou ca ne fonctionne pas ?
Messages postés
181
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
9 avril 2010

c'est normal qu'il me génère une erreure là ? :

Private Sub Command1_Click()
Dim i As Long, J As Long, Valeur As String
buffer = " YO "
i = InStr(buffer, "")
J = InStr(i, buffer, "")
Valeur = Mid$(buffer, i + 35, J - i - 35)
MsgBox Valeur
End Sub

123
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
Oui, car il faut remplacer les valeurs 35 par la longueur de ta première balise, donc pour ce second cas, ce sera 3
Messages postés
181
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
9 avril 2010

Haaa en effet bon je vais retester

Merci Kristof

123
Messages postés
181
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
9 avril 2010

alors

Dim i As Long, J As Long, Valeur As String
Private Sub Command1_Click()
Dim i As Long, J As Long, Valeur As String
buffer = Text3.Text
i = InStr(buffer, Text1.Text)
J = InStr(i, buffer, Text2.Text)
Valeur = Mid$(buffer, i + Len(Text1.Text), J - i - Len(Text2.Text))
MsgBox Valeur
End Sub

avec en text1 " " en text2 " et en text3 "TEST" donne "TES" donc il faut remplacer

Valeur = Mid$(buffer, i + Len(Text1.Text), J - i - Len(Text2.Text) par >>
Valeur = Mid$(buffer, i + Len(Text1.Text), J - i - Len(Text2.Text) + 1)

enfin je pense ;)

123
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
Ouais ! Qd on travaille une longueur de sous-chaine à partir de deux index dans la chaine, il y a souvent un caractère qui est à la ramasse et je l'oubli tout le temps : c'est comme l'histoire des poteaux et des intervalles !
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
EH !! Non ! Attention !!
Tu dois toujorus faire un Len() de Text1.Text ! Pas de Text2.Text dans l'appel à Mid$() !! Ton défaut de 1 caractère vient de là en fait !!
tu dois donc mettre ceci :

Valeur = Mid$(buffer, i + Len(Text1.Text), J - i - Len(Text1.Text)
Messages postés
181
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
9 avril 2010

Haa oué en effet c'est beaucoup mieux avec qu'un len ;)

bon je crois que ça fonctionne très bien maintenant :)

MERCI et MERCIIIIIIIII

123