Page 1 sur 1

Une procédure que je ne comprend plus.

Publié : sam. 15/oct./2022 16:29
par SPH
Salut,

J'ai une "vieille" procédure et je me demandais à quoi sert la ligne 8 (Buffer.s= Space)
Même si je met 2 à la place de 2048, ça ne plante pas. Voilà pourquoi je suis septique....

Code : Tout sélectionner

ProcedureDLL.s Url2Text2(Url.s, OpenType.b,ProxyAndPort.s)
  ;/ Author : Pille
  isLoop.b=1
  INET_RELOAD.l = $80000000
  hInet.l=0
  hURL.l=0
  Bytes.l=0
  Buffer.s= Space (2048)
  RES.s= ""
  hInet = InternetOpen_ ( "" , OpenType, ProxyAndPort, "" , 0)
  hURL = InternetOpenUrl_ (hInet, Url, #Null , 0, INET_RELOAD, 0)
  Repeat
    InternetReadFile_ (hURL,@Buffer, Len (Buffer), @Bytes)
    If Bytes = 0
      isLoop=0
    Else
      RES = RES + Left (Buffer, Bytes)
    EndIf
  Until isLoop=0
  InternetCloseHandle_ (hURL)
  InternetCloseHandle_ (hInet)
  ProcedureReturn RES
EndProcedure

Re: Une procédure que je ne comprend plus.

Publié : dim. 16/oct./2022 17:04
par Ar-S
Les histoire de space buffer je peux pas te dire. Histoire de ne pas allouer un espace trop cours je suppose.
ça fait belle lurette que tu peux utiliser en natif HTTPRequestMemory pour ça

Code : Tout sélectionner

url$ = "http://arsworld.free.fr/ip.php"
Procedure.s Url2Text(url$)
HttpRequest = HTTPRequestMemory(#PB_HTTP_Get, url$)
  If HttpRequest
    R$ = HTTPInfo(HTTPRequest, #PB_HTTP_Response)
    FinishHTTP(HTTPRequest)
  Else
    Debug "La requête a échoué"
  EndIf
  ProcedureReturn R$
EndProcedure

Debug Url2Text(url$)