Bonjour à tous
Nico a parfaitement indiqué la correction sur la PB520 B19
Voici un prg qui permet de récupérer maintenant le code HTML dans Debug avec WEBGADGET.
Code : Tout sélectionner
OpenConsole("resultat")
CreateFile(0,"TEST_PP.html")
If OpenWindow(0,0,0,1250,850,"WebGadget",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
WebGadget(1,10,10,1200,800,"http://www.purebasic.com")
dep.q=ElapsedMilliseconds()
flag=0
Resultat$=GetGadgetItemText(1,#PB_Web_HtmlCode )
dlres=Len(resultat$)
Repeat
Delay(10)
Resultat$=GetGadgetItemText(1,#PB_Web_HtmlCode)
lres=Len(resultat$)
If lres=mlres And flag=0 And lres>dlres
Resultat$=GetGadgetItemText(1,#PB_Web_HtmlCode)
PrintN(Resultat$)
Debug Resultat$
WriteString(0,Resultat$,#PB_UTF8)
flag+1
EndIf
mlres=lres
Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
CloseConsole()
CloseFile(0)
RunProgram("TEST_PP.html")
Par contre j’ai toujours un pb avec le code de falsam génèré sur Debug avec l’utilisation de #PB_EventType_DownloadEnd.
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")
NBpassage=0
Repeat
Event=WaitWindowEvent()
GEvent=EventGadget()
TEvent=EventType()
Select Event
Case #PB_Event_Gadget
Select GEvent
Case 1
Select TEvent
Case #PB_EventType_DownloadEnd
nbpassage+1
Resultat$=GetGadgetItemText(1,#PB_Web_HtmlCode)
Debug Resultat$
PrintN(Resultat$)
WriteString(0,Resultat$,#PB_UTF8)
EndSelect
EndSelect
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
EndIf
CloseConsole()
CloseFile(0)
RunProgram("TEST_FAL.html")
Debug nbpassage
End
D’une part il y a deux passages dans la case #PB_EventType_DownloadEnd
Le premier passage génère 5 caractères parasites en Hexa "FF DD 3C 0D 0A" qui demeurent au deuxième passage, par contre le code généré est complet + 5 caractères parasites en tête.
Il est difficile d’utiliser le code pourtant complet sans retirer les caractères parasites
Or après enregistrement par l’option "enregistrer" de debug il est impossible de voir ces caractères dans un éditeur classique il faut utiliser un éditeur hexa. Par contre si on utilise l’option "copier tout" avec récupération dans un éditer classique il n’y a pas de pb pour retirer ces 5 caractères parasites.
Je vous signale ces pb car non seulement je ne comprends pas la génération des 5 caractères parasites en tête ,mais aussi pour la difficulté que j’ai eu à retirer ces caractères dans un éditeur classique à partir du nouveau Debug.
Le nouveau debug nettement plus agréable que le précédent nous réserve encore quelque surprise.
Avez-vous les mêmes pb chez vous ?
PC:
j'ai testé le nouveau debug et je ne suis arrivé à 50 000 000 de caractères avec des fins de ligne #LF$.
Voici le prg pour tester. Je n'ai pas testé comme nico le nb max de caractères dans une ligne.
Code : Tout sélectionner
#MAX=50000000; <- vous pouvez modifier le nombre de d'octets supporté par debug ici 50 000 000
; mais à partir de la PB520 B19 ce n'est pas le maximum et en plus #LF$ #LFCR$ ect..mise en forme du texte
#MAX_100=(#MAX/100)
Structure Alpha
StructureUnion
ALP1.s{1}[#MAX]
ALP100.s{100}[#MAX_100]
ALPT.s{#MAX}
EndStructureUnion
EndStructure
Define A1.ALPHA
Debug "chaque ligne fait 100 caractères avec au debut le Nombre des centaines ou le N° de ligne et en fin #LF$ que l'on ne voit pas"
NBoct=Len(Str(#max_100))
; _____0____-----1----_____2____-----3----_____4____-----5----_____6____-----7----_____8____-----9----
Sign$="012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678" +#LF$
sig$="_"+Right(sign$,100-(nboct+1))
nbz$=ReplaceString(Space(nboct)," ","0")
For X=0 To #max_100-1
deb$=Right(nbz$+Str(x),NBoct)
A1\ALP100[X]=deb$+sig$
Next
Debug A1\ALPT
Debug "nombre d'octets édités en une fois ="+Str(Len(A1\ALPT))
; OpenConsole("Essai(chaine de caractère")
; PrintN(A1\ALPT)
; Input()
; CloseConsole()
A+