Recherche avec inst()

Résolu
kakenette Messages postés 218 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 15 novembre 2009 - 25 déc. 2005 à 15:35
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 25 déc. 2005 à 18:52
Bonjour !



Voila j'essaye de capturer certain élément d'une de mes source qui est une sorte de liste de ce genre :

<h2>Titre Blabla</h2>
<a href="BlaBla">LalaLala</a><br>
<a href="BlaBla">LalaLala</a><br>
<a href="BlaBla">LalaLala</a><br>
<h2>Titre Blabla</h2>
<a href="BlaBla">LalaLala</a><br>
<a href="BlaBla">LalaLala</a><br>
<a href="BlaBla">LalaLala</a><br>

Voila, je capture les lignes href avec :
afin de les mettre dans une listebox

Dim Depart As Long
Dim fin As Long
Dim debut As Long
debut = 1
Depart = InStr(debut, codesrc, "[ & Chr(34))
Do While Depart <> 0
DoEvents
fin = InStr(Depart + 9, codesrc, ")
List3.AddItem Mid(codesrc, Depart + 9, fin - Depart - 9)
debut = fin
Depart = InStr(debut, codesrc, "]h2> ) de manière que ma liste aille les "href" et a la suite selon la source coupée avec les " <h2> "



Vous voyez un peut le truc que jessaye de faire ?



Lol si quelqu'un pourai me donner un coup de pouce ou peut etre une
autre methode pour pouvoire lister les 2 en meme temps sa serrai gentil.



Merci.

kakenette

4 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
25 déc. 2005 à 16:21
salut,


VB6 ?


tu veux quoi, les balises h2, les liens et leur label ?









Option Explicit

'

Private Sub Form_Load()

Me.AutoRedraw = True

Me.Show



Dim sSource As String, i As Long, iPos As Integer

sSource = "Titre Blabla
" & vbCrLf & _
"[ & Chr$(34) & LalaLala]
" & vbCrLf & _

"[ & Chr$(34) & LalaLala]
" & vbCrLf & _

"[ & Chr$(34) & LalaLala]
" & vbCrLf & _

"Titre Blabla
" & vbCrLf & _

"[ & Chr$(34) & LalaLala]
" & vbCrLf & _

"[ & Chr$(34) & LalaLala]
" & vbCrLf & _

"[ & Chr$(34) & LalaLala]
"



' qu'est-ce çà donne?

Me.Print sSource

Me.Print vbCrLf & "========================" & vbCrLf



' on, récupère chaque ligne

Dim aSource() As String

aSource = Split (sSource, vbCrLf)



' on vire les espaces en trop, on regarde si pas vide, h2, ou lien

For i = 0 To UBound(aSource)

aSource(i) = Trim$(aSource(i))

If LenB (aSource(i)) > 0 Then

If InStr(1, aSource(i), "<h2>") > 0 Then

Me.Print "Balise H2" & vbTab & Mid$(aSource(i), 5, Len(aSource(i)) - 9)

ElseIf InStr(1, aSource(i), " 0 Then

iPos = InStr(1, aSource(i), Chr$(34) & ">")

Me.Print "Balise HREF" & vbTab & _

"Lien = " & Mid$(aSource(i), 10, iPos - 10) & vbTab & _

"Texte = " & Mid$(aSource(i), iPos + 2, Len(aSource(i)) - iPos - 9)

End If

End If

Next i

Erase aSource

End Sub






<small> Coloration
syntaxique automatique [AFCK]</small>




PCPT [AFCK]
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
25 déc. 2005 à 18:00
suite à ton Message Privé...

çà me semble répondre à ta demande






Option Explicit

'

Private Sub Form_Load()

Me.AutoRedraw = True

Me.Show



Dim sSource As String, i As Long, iPosA As Integer, iPosL As Integer

sSource = "Voir MP"





' qu'est-ce çà donne?

Me.Print sSource

Me.Print vbCrLf & "========================" & vbCrLf



' on, récupère chaque ligne

Dim aSource() As String

aSource = Split (sSource, vbCrLf)



' on vire les espaces en trop, on regarde si pas vide, h2, ou lien

For i = 0 To UBound(aSource)

aSource(i) = Trim$(aSource(i))

If LenB (aSource(i)) > 0 Then

If InStr(1, aSource(i), "<h2>") > 0 Then

Me.Print vbCrLf & "Balise H2" & vbTab & Mid$(aSource(i), 5, Len(aSource(i)) - 9)

ElseIf InStr(1, aSource(i), " 0 Then

iPosL = InStr(1, aSource(i), Chr$(34) & " title= ")

iPosA = InStr (iPosL + 1, aSource(i), Chr$(34) & ">")

' juste au cas où....

If iPosA 0 Or iPosL 0 Then

Me.Print "Problème de Parsing"

Else

Me.Print "Lien = " & Mid$(aSource(i), 10, iPosL - 10) & vbTab & vbTab & _

"Auteur = " & Mid$(aSource(i), iPosL + 23, iPosA - iPosL - 23) & vbTab & vbTab & _

"Texte = " & Mid$(aSource(i), iPosA + 2, Len(aSource(i)) - iPosA - 9)

End If

End If

End If

Next i

Erase aSource

End Sub




<small> Coloration
syntaxique automatique [AFCK]</small>



PCPT [AFCK]
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
25 déc. 2005 à 18:15
donne suite ici plutôt qu'en MP stp...
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
25 déc. 2005 à 18:52
avec inet










Private Sub Command6_Click()

Dim sSource As String, i As Long, iPosA As Integer, iPosL As Integer, aSource() As String

Const sUrl As String = "http://www.vgmusic.com/music/console/nintendo/ds/index-classic.html"



With Inet

.AccessType = icUseDefault

.Protocol = icHTTP

sSource = .OpenURL(sUrl, icString)

Do Until .StillExecuting = False

DoEvents

Loop

End With



aSource = Split (sSource, Chr$(10))



For i = 0 To UBound(aSource)

aSource(i) = Trim$(aSource(i))

If LenB (aSource(i)) > 0 Then

If InStr(1, aSource(i), "<h2>") > 0 Then

Me.Print vbCrLf & "Balise H2" & vbTab & Mid$(aSource(i), 5, Len(aSource(i)) - 9)

ElseIf InStr(1, aSource(i), " 0 Then

iPosL = InStr(1, aSource(i), Chr$(34) & " title= ")

iPosA = InStr (iPosL + 1, aSource(i), Chr$(34) & ">")

If iPosA > 0 And iPosL > 0 Then

Me.Print "Lien = " & Mid$(aSource(i), 10, iPosL - 10) & vbTab & vbTab & _

"Auteur = " & Mid$(aSource(i), iPosL + 23, iPosA - iPosL - 23) & vbTab & vbTab & _

"Texte = " & Mid$(aSource(i), iPosA + 2, Len(aSource(i)) - iPosA - 9)

End If

End If

End If

Next i

Erase aSource

End Sub





<small> Coloration
syntaxique automatique [AFCK]</small>
0
Rejoignez-nous