LA CITATION DU JOUR

K@zuya Messages postés 306 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 15 février 2016 - 11 févr. 2005 à 22:02
zemetafyzik Messages postés 117 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 3 novembre 2007 - 12 févr. 2005 à 18:28
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/29440-la-citation-du-jour

zemetafyzik Messages postés 117 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 3 novembre 2007 1
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és 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
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és 29 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 2 mai 2012 16
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és 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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és 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
11 févr. 2005 à 22:31
Ma citation du jour :

"Programme ta vie et donne vie a tes programmes"
K@zuya Messages postés 306 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 15 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,">><")
Rejoignez-nous