Entre deux valeurs

Résolu
maxsecurite2 Messages postés 181 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 9 avril 2010 - 6 févr. 2008 à 16:48
maxsecurite2 Messages postés 181 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 9 avril 2010 - 6 févr. 2008 à 21:43
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

maxsecurite2 Messages postés 181 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 9 avril 2010
6 févr. 2008 à 18:05
ç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
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 févr. 2008 à 17:01
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)
0
maxsecurite2 Messages postés 181 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 9 avril 2010
6 févr. 2008 à 17:07
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
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
6 févr. 2008 à 17:12
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 !
0

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

Posez votre question
maxsecurite2 Messages postés 181 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 9 avril 2010
6 févr. 2008 à 17:18
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
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
6 févr. 2008 à 17:20
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 ?
0
maxsecurite2 Messages postés 181 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 9 avril 2010
6 févr. 2008 à 17:28
en effet HONTE A MOI :)

je vais voir ça

123
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
6 févr. 2008 à 20:32
Et quel sont les cas ou ca ne fonctionne pas ?
0
maxsecurite2 Messages postés 181 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 9 avril 2010
6 févr. 2008 à 20:51
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
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
6 févr. 2008 à 21:08
Oui, car il faut remplacer les valeurs 35 par la longueur de ta première balise, donc pour ce second cas, ce sera 3
0
maxsecurite2 Messages postés 181 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 9 avril 2010
6 févr. 2008 à 21:09
Haaa en effet bon je vais retester

Merci Kristof

123
0
maxsecurite2 Messages postés 181 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 9 avril 2010
6 févr. 2008 à 21:12
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
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
6 févr. 2008 à 21:27
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 !
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
6 févr. 2008 à 21:29
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)
0
maxsecurite2 Messages postés 181 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 9 avril 2010
6 févr. 2008 à 21:43
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
0
Rejoignez-nous