[resolu] - Bug Debug

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
doudouvs
Messages : 244
Inscription : jeu. 07/mars/2013 19:02
Localisation : France Alsace / Espagne Girona

[resolu] - Bug Debug

Message par doudouvs »

Arff j'ai chercher comme un fou pourquoi dans Debug je n'arrive pas a faire la récupération TOTAL d'un code html.
En rajoutant un MessageRequester j'ai compris Grrrrrr un Debug qui BUG

Cela doit être uniquement de l'affichage car quand on copie/colle de la fenêtre Debug dans un fichier text le code est compler

Code : Tout sélectionner

Global Window_0

Declare  Connect()
InitNetwork() 
#PB_send = 1

If OpenWindow(#PB_Any, 100, 500, 350, 170, "", #PB_Window_SystemMenu)
  Button_Connect = ButtonGadget(#PB_send, 70, 110, 100, 25, "Send")
  
  Repeat
    Event = WaitWindowEvent()
    Select Event
        
      Case #PB_Event_Gadget
        Select EventGadget()
            
          Case 1
            Connect()
        EndSelect
        
    EndSelect
    
  Until Event = #PB_Event_CloseWindow
  
EndIf

Procedure Connect()
  #TimeOut = 5
  Host.s = "goolge.fr" 
  Arg.s = "?q=purebasic"
  Request.s = "GET /" + Arg + " HTTP/1.1"+#CRLF$+"Host: " + Host +#CRLF$+"Connection: Keep-Alive"+#CRLF$+#CRLF$ 
  Conn = OpenNetworkConnection(Host, 80) 
  If Conn 
    SendNetworkData(Conn, @Request, Len(Request)) 
    Result.s 
    TimeOut = Date() + #TimeOut
    Repeat 
      If NetworkClientEvent(Conn) = #PB_NetworkEvent_Data 
        Buffer.s = Space(1024) 
        Received = ReceiveNetworkData(Conn, @Buffer, 1024) 
        Recu.s = Left(Buffer, Received)
        Result.s + Recu    
        MessageRequester("Done!","Your Data" + Chr(13) + Chr(10) + Recu,0) 
        
        Debug  Recu
        
        If Right(Recu, 4) = #CRLF$ + #CRLF$
          Break
        EndIf
        TimeOut = Date() + #TimeOut
      EndIf 
      If Date() > TimeOut
        Break
      EndIf
      Delay(10)
    ForEver 
  EndIf
  CloseNetworkConnection(Conn) 
EndProcedure
Dernière modification par doudouvs le mar. 12/mars/2013 20:43, modifié 1 fois.
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: Bug Debug

Message par omega »

Salut

Essayes de placer la procedure connect() avant son appel

Bonne journée
Win7 (x64) 64 bits Pb 5.72
doudouvs
Messages : 244
Inscription : jeu. 07/mars/2013 19:02
Localisation : France Alsace / Espagne Girona

Re: Bug Debug

Message par doudouvs »

Salut,

Cela ne change rien, c'est vraiment un problème d'affichage de la fenêtre Debug.
quand j'affiche le resultat dans MessageRequester le texte est complet.

Je me suis juste demander pourquoi il n'afficher pas tout, j'ai chercher sur les caractères spéciaux pure perte de temps

Bonne journée à toi
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Bug Debug

Message par nico »

J'ai testé, tout est dans le debugger mais c'est vrai qu'à un certain moment il tronque mais c'est normal.
doudouvs
Messages : 244
Inscription : jeu. 07/mars/2013 19:02
Localisation : France Alsace / Espagne Girona

Re: Bug Debug

Message par doudouvs »

nico a écrit :J'ai testé, tout est dans le debugger mais c'est vrai qu'à un certain moment il tronque mais c'est normal.
Le debugger est justement là pour vérifier ce que l'on ne vois pas, je pense pas que cela soit normal de tronquer
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Re: Bug Debug

Message par cederavic »

Peut etre à cause d'un retour de chariot ou d'un tab, une connerie du genre... Voir meme peut-etre une chr(0)?
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Bug Debug

Message par Ar-S »

Je pense que ton soucis vient de là

Code : Tout sélectionner

If Right(Recu, 4) = #CRLF$ + #CRLF$
 	Break
EndIf
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Bug Debug

Message par GallyHC »

Bonjour,

tu utilise dans ta routine le protocole 1.1 perso je dirais vu ce que j'ai du faire comme test, que le protocol 1.0 pose moin de problème et evite des caractères non voulu (genre sans regarde dans ta fonction avant le code html tu as un truc du genre "7e3a", un code hexadecimal de 4 caractères).

Donc le seul changement c juste de mettre "HTTP/1.0" a la place de "HTTP/1.1".

Voila c'est mon avis je ne sais pas si cela va résoudre ton problème...

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Bug Debug

Message par nico »

Tu peux faire quelque chose comme ça pour y voir plus clair:

Code : Tout sélectionner

Macro DebugCHR(Texte)
  CompilerIf #PB_Compiler_Debugger = #True
    Texte = RemoveString(Texte, Chr(10))
    count.l = CountString(Texte, Chr(13))
    For a = 1 To count +1
      Debug StringField(Texte, a, Chr(13))
    Next a
  CompilerEndIf
EndMacro


Global Window_0

Declare  Connect()
InitNetwork() 
#PB_send = 1

If OpenWindow(#PB_Any, 100, 500, 350, 170, "", #PB_Window_SystemMenu)
  Button_Connect = ButtonGadget(#PB_send, 70, 110, 100, 25, "Send")
  
  Repeat
    Event = WaitWindowEvent()
    Select Event
        
      Case #PB_Event_Gadget
        Select EventGadget()
            
          Case 1
            Connect()
        EndSelect
        
    EndSelect
    
  Until Event = #PB_Event_CloseWindow
  
EndIf

Procedure Connect()
  #TimeOut = 5
  Host.s = "goolge.fr" 
  Arg.s = "?q=purebasic"
  Request.s = "GET /" + Arg + " HTTP/1.1"+#CRLF$+"Host: " + Host +#CRLF$+"Connection: Keep-Alive"+#CRLF$+#CRLF$ 
  Conn = OpenNetworkConnection(Host, 80) 
  If Conn 
    SendNetworkData(Conn, @Request, Len(Request)) 
    Result.s 
    TimeOut = Date() + #TimeOut
    Repeat 
      If NetworkClientEvent(Conn) = #PB_NetworkEvent_Data 
        Buffer.s = Space(1024) 
        Received = ReceiveNetworkData(Conn, @Buffer, 1024) 
        Recu.s = Left(Buffer, Received)
        Result.s + Recu    
        ;MessageRequester("Done!","Your Data" + Chr(13) + Chr(10) + Recu,0) 
        
        DebugCHR(Recu)
        
        If Right(Recu, 4) = #CRLF$ + #CRLF$
          Break
        EndIf
        TimeOut = Date() + #TimeOut
      EndIf 
      If Date() > TimeOut
        Break
      EndIf
      Delay(10)
    ForEver 
  EndIf
  CloseNetworkConnection(Conn) 
EndProcedure
Dernière modification par nico le mar. 12/mars/2013 21:03, modifié 1 fois.
doudouvs
Messages : 244
Inscription : jeu. 07/mars/2013 19:02
Localisation : France Alsace / Espagne Girona

Re: Bug Debug

Message par doudouvs »

Nickel la macro, je connaissais pas

J'avais bien vu que les sauts de ligne poser un problème

Code : Tout sélectionner

#CR => Chr(13))
#LF => Chr(10))
@nico Merci d'avoir mis la lumière

@GallyHC
Non pas de 1.0 j'ai un Connection: Keep-Alive dans l'entête
Pour info l'HTTP 1.0 ne permet pas de connection persistante, L'HTTP 1.1 utilise des connections persistantes ce qui permet de passer plusieurs requêtes sans sans attendre de réponse.
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: [resolu] - Bug Debug

Message par nico »

De rien, je viens d'ailleurs de corrigé, j'avais mis if au lieu de CompilerIf.
brossden
Messages : 819
Inscription : lun. 26/janv./2004 14:37

Re: [resolu] - Bug Debug

Message par brossden »

Bonjour à tous

Juste un petit bug que j'ai relevé la commande :CloseNetworkConnection(Conn) doit être insérée avant le EndIf car si OpenNetworkConnection(Host, 80) n’aboutit pas on ne peut pas fermer une connexion qui n'existe pas ...
Denis

Bonne Jounée à tous
Répondre