Page 2 sur 3

Re: WebGadget() et récupération du code html d'une page web.

Publié : lun. 09/sept./2013 11:55
par PAPIPP
@Mesa
Merci pour ce programme mais voici plus court

Code : Tout sélectionner

; English forum: http://www.purebasic.fr/english/viewtopic.php?t=14500&highlight=
; Author: Flype modif PAPIPP le 9/9/2013
; Date: 24. March 2005
; OS: Windows
; Demo: No

url$="http://www.purebasic.com"
file$="c:\urldownload.html"
If InternetGetConnectedState_(@flags,#Null)
	hResult=URLDownloadToFile_(#Null,url$,file$,#Null,#Null)
Else
	MessageRequester("Error","You are connected to internet",#MB_ICONERROR)
EndIf
RunProgram(file$)

Mais le pb que j'évoquais ci dessus est la question :
4) Question pourquoi debug utilisé dans les prg avec un webgadget donne des résultats faux alors que celui issu du dernier prg de falsam est correct
A+

Re: WebGadget() et récupération du code html d'une page web.

Publié : lun. 09/sept./2013 22:08
par nico
Je suis désolé mais les résultats ne sont pas faux sauf que quelqu'un a dit:
Oui enfin, il faut savoir qu'on ne peut pas toujours utiliser #PB_EventType_DownloadEnd car on reçoit plusieurs évènements, cela ne fait que 5 ans que j'ai posté le problème, mais je crois que tout le monde s'en fout.
Une fois que tu as pris en compte cela, les résultats sont bons!
Les trois programmes donnent les mêmes résultats en fichier html mais pour le deux prg avec webgadget il est impossible de lancer un RunProgram("TEST_FAL.html")
C'est normal puisque tu as mis un end après #PB_Event_CloseWindow, le reste du code ne s'exécute donc pas!


Dans ton dernier code, il faut que tu remplaces ton MessageRequester par:
MessageRequester("Error","You are not connected to internet",#MB_ICONERROR)

Re: WebGadget() et récupération du code html d'une page web.

Publié : lun. 09/sept./2013 23:40
par PAPIPP
@Nico
merci pour avoir observé ces petites erreurs.
voici le programme de falsam corrigé.

Code : Tout sélectionner

OpenConsole("resultat")
CreateFile(0,"TEST_FAL.html")
If OpenWindow(0,0,0,600,300,"WebGadget",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  WebGadget(1,10,10,580,280,"http://www.purebasic.com")
  
  Repeat
    Event=WaitWindowEvent()
    GEvent=EventGadget()
    TEvent=EventType()
    
    Select Event
      Case #PB_Event_Gadget
        Select GEvent
          Case 1
            Select TEvent
              Case #PB_EventType_DownloadEnd
                ;                 Delay(20)
                Resultat$=GetGadgetItemText(1,#PB_Web_HtmlCode)
                PrintN(Resultat$)
                Debug Resultat$
                WriteString(0,Resultat$,#PB_UTF8)
            EndSelect
        EndSelect
      Case #PB_Event_CloseWindow
        Break
    EndSelect
  ForEver
 EndIf 
CloseConsole()
CloseFile(0)
RunProgram("TEST_FAL.html")
End
Par contre je n'ai toujours pas d'explication sur le résultat du debug tronqué avec des points de suspensions en fin dans les deux cas d'utilisation d'un webgadget.

A+

Re: WebGadget() et récupération du code html d'une page web.

Publié : lun. 09/sept./2013 23:48
par Backup
PAPIPP a écrit : Par contre je n'ai toujours pas d'explication sur le résultat du debug tronqué avec des points de suspensions en fin dans les deux cas d'utilisation d'un webgadget.

A+
ben parceque le Debug n'est pas fait pour renvoyer un text trop long ..
comme le visualiseur de variable ....
il n'accepte pas non plus les Chr(10) ...

essaye en sortant sur un Requester ou un editeur ;)

Re: WebGadget() et récupération du code html d'une page web.

Publié : mar. 10/sept./2013 0:04
par PAPIPP
@dobro

Oui j'avais pensé aussi à cette possibilité mais le test sur le 3em prg de falsam exclu cette possibilié.
exemple :

Code : Tout sélectionner

InitNetwork()

If Not ReceiveHTTPFile("http://www.purebasic.com", "test.html")
		Debug "Ooops : Souci de réception "
		End
EndIf

If ReadFile(0, "test.html")
		While Not Eof(0)
				Debug ReadString(0)
		Wend
EndIf

;Juste pour voir
RunProgram("test.html")
OpenFile(0,"test.html",#PB_File_SharedRead )
resultat$=ReadString(0, PB_Ascii )   
; resultat$=ReadString(0, #PB_UTF8)   
Debug resultat$
CloseFile(0)

Et là le code récupéré dans le debug est complet.
A+

Re: WebGadget() et récupération du code html d'une page web.

Publié : mar. 10/sept./2013 0:06
par Backup
faudrai que Fred se penche la dessus .. :)

Re: WebGadget() et récupération du code html d'une page web.

Publié : mar. 10/sept./2013 8:01
par Mesa
Quand vous trouvez un bug, merci de le poster sur le forum anglais. Ça simplifie le travail de Fred.

Mesa.

Re: WebGadget() et récupération du code html d'une page web.

Publié : mar. 10/sept./2013 8:28
par PAPIPP
@Mesa
Merci mais c'est déjà fait
A+

Re: WebGadget() et récupération du code html d'une page web.

Publié : mar. 10/sept./2013 12:24
par nico
Merci mais c'est déjà fait
Bravo mais il n'y a pas de bug, dans ton code le premier debug fait un affichage ligne par ligne et le second ne fait qu'afficher la première ligne soit "<HTML>.

Cela n'a rien avoir avec ce qu'a dit Dobro, le nombre de caractères par ligne dans le debugger est limité ainsi d'ailleurs que le nombre de lignes.

Je vois que tu ne réfléchis pas beaucoup et que tu ne prends même pas la peine de debugger dix lignes de prog pour constater les problèmes.

Re: WebGadget() et récupération du code html d'une page web.

Publié : mer. 11/sept./2013 9:05
par PAPIPP
@Nico
Je ne comprends pas et je n'ai jamais compris le ton agressif lorsque l'on parle technique.
Il est très facile d'argumenter.
Par ailleurs la tolérance devrait être la première qualité de ce forum
Enfin pour clore le débat voici la réponse de FRED
http://www.purebasic.fr/english/viewto ... 4&t=56561
Fixed.
Il y a bien un bug

Re: WebGadget() et récupération du code html d'une page web.

Publié : mer. 11/sept./2013 9:15
par falsam
Bonjour Papipp et merci d'avoir poster ce bug sur le forum anglais :)

Re: WebGadget() et récupération du code html d'une page web.

Publié : mer. 11/sept./2013 9:21
par Backup
Fatigué Nico ? :mrgreen:

Re: WebGadget() et récupération du code html d'une page web.

Publié : mer. 11/sept./2013 18:02
par nico
Il y a bien un bug
Peux t'on savoir au moment où t'as découvert le bug, de quelle version de PureBasic, il s'agissait; la version 5.11 ou la version 5.20?

Re: WebGadget() et récupération du code html d'une page web.

Publié : mer. 11/sept./2013 20:15
par nico
Bon je répond, la 5.11 utilise pour debugger une Listbox (ListViewGadget) dont le contenu total ne peut pas dépasser 64 kilobytes, voir ici:
http://msdn.microsoft.com/en-us/library/ms997541.aspx
Ce qui signifie que même si tu pouvais afficher en une seule ligne un texte de 64 Kbyte, tu ne pourrais plus rien debugger par la suite car tu aurais atteint la limite de Window pour ce contrôle. Donc d'où la nécessité de limiter le nombre de caractère par ligne!

Dans la version 5.20 Bêta 18, Fred utilise un Rich Edit Control (EditorGadget) qui prend en compte les retours chariots, ce qui fait que le debugger n'aura que très rarement besoin d'afficher de longs textes sur une seule ligne ce qui n'est pas le cas pour la Listbox car il n'y aura jamais de retour à la ligne.

Les limites de l'EditorGadget:
Un total de 64000 caractères
Le nombre de caractères par ligne, je ne l'ai pas trouvé mais pour ce qui du debugger de Purebasic, il serait pour l'instant de 4027

Il y a en effet, un problème de tronquage de texte mais dans la version 5.20 et pas dans la version 5.11 comme expliqué plus haut; donc si ta découvert le bug dans la version bêta de PureBasic, merci de spécifier sur quelle version tu travailles (c'est auusi valable sur le report de bug dans la section bug du forum anglais) car par défaut on parle de la dernière version officielle de Purebasic . Si tu as découvert le bug avec la version 5.11, saches que tu as eu un sacré coup de bol car comme expliqué plus haut, le debugger à été complètement réécrit et n'est pas le même que les versions précédentes, c'est une des nouveautés de cette version. Fred a testé ton code sur la 5.20 et a constaté un problème réel mais sans rapport direct avec l'affichage sur une Listbox puisque c'est un Rich Edit maintenant.

Alors si je peux paraître désagréable, c'est que tu ne prends pas le temps de lire et de tester et tu t'embarques dans des raisonnements infondés et fausses malgré mes tentatives d'explications.

[Post mise à jour à 21H49]

Re: WebGadget() et récupération du code html d'une page web.

Publié : mer. 11/sept./2013 23:05
par Backup
nico a écrit : Il y a en effet, un problème de tronquage de texte mais dans la version 5.20 et pas dans la version 5.11 comme expliqué plus haut;
si ! il y a un tronquage en v 5.11 ...

la preuve :

Image

je te l'ai bien entouré en rouge pour ne pas que tu loupe le tronquage "[...]"
en regardant en haut de l'image tu verra que EPB est bien sous Purebasic V 5.11