zemetafyzik
Messages postés117Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 3 novembre 20071 12 févr. 2005 à 18:28
ta source je la voi beaucoup plus simple, j'ai ecris un code, j'ai essayer de le commenter, pour voir ce que cela donne il suffit de créé une nouvelle form avec :
2 label (label1;label2)
un timer (timer1)
et un "webbrowser" (webbrowser1)
'---------------------code-----------------
Public gg As String 'ici le texte du webbrowser
Public b As Long
Public c As Long
Public d As Long
Public e As Long
Private Sub Form_Load()
Webbrowser1.Navigate ("http://www.evene.fr/citations/index.php") 'charge la page web
Timer1.Enabled = False
Timer1.Interval = 250
End Sub
Private Sub Timer1_Timer()
Label1.Caption = Label1.Caption & "." 'faire patienter...
End Sub
Private Sub Webbrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) 'quand la page a fini de charger
Timer1.Enabled = False 'on arrete de faire patienter
gg = Webbrowser1.Document.body.innertext 'on place uniquement le texte de la page (et pas la source)
'voici les 3 different, mais je connais pas leur specificité
'Webbrowser1.Document.body.innerhtml
'webbrowser1.document.body.innertext
'webbrowser1.Document.documentelement.innerhtml
'------------
'la citation
b = InStr(1, gg, "LA CITATION [DU JOUR]") 'on chope l'emplacement de ça
c = InStr(b, gg, "« Envoyer à un ami") 'idem
'------------
'------------
'l'auteur
d = InStr(c, gg, "[")
e = InStr(d, gg, "]")
'------------
Label1.Caption = Mid(gg, b + 27, c - (b + 27)) '+ 27 : nombre de caractere a rajouter pour arriver a la citation
'c - (b + 27) : nombre de caractere a prendre
Label2.Caption = Mid(gg, d + 1, e - (d + 1)) 'idem, mais pour l'auteur
End Sub
Private Sub webbrowser1_DownloadBegin()
Label1.Caption = "patientez SVP " 'debut du chargement
Timer1.Enabled = True
End Sub
'---fin du code
par contre, il faut faire gaffe car sur evene : desfois il y a une citation qui fait des sauts de ligne
et il y a parfois le nom du livre(ou autre) dans lequelle c'est extrait. ceci n'est pas pris en compte dans ce prog.
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 12 févr. 2005 à 11:38
C'est pas mal mais le temps de chargement est un peu long chez moi est ce normal ?
Kazuya parlait de ta fonction qui faisait ramer le tout, il faudrait donc essayer avec Instr
titoine2000
Messages postés29Date d'inscriptionsamedi 13 mars 2004StatutMembreDernière intervention 2 mai 201216 12 févr. 2005 à 09:02
Merci Kazuya, j'en tiendrai compte pour ma mise a jour (j'avais bien précisé qu'il y avais quelques problemes d'optimisation du code)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 12 févr. 2005 à 01:53
Ca manque de description.
Ces sitations, elles sont dans l'application ?
Ah non, sur un site --> Important à préciser quand même, s'il faut une connexion internet ...
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 11 févr. 2005 à 22:31
Ma citation du jour :
"Programme ta vie et donne vie a tes programmes"
K@zuya
Messages postés306Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention15 février 2016 11 févr. 2005 à 22:02
Cette source est tres intéressente et fonctionne tres bien, juste un truc, ta fonction qui cherche la chaine: ">><" met plusieurs secondes à le trouver
sache qu'il existe la fonction VB Instr qui cherche une chaine dans une autre et qui est tres rapide.
dans ton code ça donnerai:
b = instr(1,code.Text,">><")
12 févr. 2005 à 18:28
2 label (label1;label2)
un timer (timer1)
et un "webbrowser" (webbrowser1)
'---------------------code-----------------
Public gg As String 'ici le texte du webbrowser
Public b As Long
Public c As Long
Public d As Long
Public e As Long
Private Sub Form_Load()
Webbrowser1.Navigate ("http://www.evene.fr/citations/index.php") 'charge la page web
Timer1.Enabled = False
Timer1.Interval = 250
End Sub
Private Sub Timer1_Timer()
Label1.Caption = Label1.Caption & "." 'faire patienter...
End Sub
Private Sub Webbrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) 'quand la page a fini de charger
Timer1.Enabled = False 'on arrete de faire patienter
gg = Webbrowser1.Document.body.innertext 'on place uniquement le texte de la page (et pas la source)
'voici les 3 different, mais je connais pas leur specificité
'Webbrowser1.Document.body.innerhtml
'webbrowser1.document.body.innertext
'webbrowser1.Document.documentelement.innerhtml
'------------
'la citation
b = InStr(1, gg, "LA CITATION [DU JOUR]") 'on chope l'emplacement de ça
c = InStr(b, gg, "« Envoyer à un ami") 'idem
'------------
'------------
'l'auteur
d = InStr(c, gg, "[")
e = InStr(d, gg, "]")
'------------
Label1.Caption = Mid(gg, b + 27, c - (b + 27)) '+ 27 : nombre de caractere a rajouter pour arriver a la citation
'c - (b + 27) : nombre de caractere a prendre
Label2.Caption = Mid(gg, d + 1, e - (d + 1)) 'idem, mais pour l'auteur
End Sub
Private Sub webbrowser1_DownloadBegin()
Label1.Caption = "patientez SVP " 'debut du chargement
Timer1.Enabled = True
End Sub
'---fin du code
par contre, il faut faire gaffe car sur evene : desfois il y a une citation qui fait des sauts de ligne
et il y a parfois le nom du livre(ou autre) dans lequelle c'est extrait. ceci n'est pas pris en compte dans ce prog.
12 févr. 2005 à 11:38
Kazuya parlait de ta fonction qui faisait ramer le tout, il faudrait donc essayer avec Instr
12 févr. 2005 à 09:02
12 févr. 2005 à 01:53
Ces sitations, elles sont dans l'application ?
Ah non, sur un site --> Important à préciser quand même, s'il faut une connexion internet ...
11 févr. 2005 à 22:31
"Programme ta vie et donne vie a tes programmes"
11 févr. 2005 à 22:02
sache qu'il existe la fonction VB Instr qui cherche une chaine dans une autre et qui est tres rapide.
dans ton code ça donnerai:
b = instr(1,code.Text,">><")