Coucou, me revoila, une petite visite le temps de creer un petit programme que j'ai promis a un copain
Premierement j'en profite pour presenter des excuses a Dobro envers qui je me suis adresse malpoliment la derniere fois que je suis rentre ici.
Deuxiemement .. voila : J'ai fait une recherche, mais je n'ais trouve que des API, ce qui n'est pas vraiment pratique pour le petit project que j'entreprends : Existe-t-il une fonction Purebasic pour recuperer le contenu d'une page web, afin de la stocker dans une variable, puis la traiter? Il s'agit d'un petit code HTML, rien de tres complique ni de tres lourd.
Je ne sais pas pourquoi mais j'ai le souvenir d'avoir un jour fait ca pour recuperer un numero de version d'un programme mais je ne retrouve plus la source
Si c'est impossible, quel est le moyen le plus simple de le faire via les apis?
Merci beaucoup et bonne soiree
Recuperer le contenu d'une page web
-
- Messages : 446
- Inscription : mar. 25/mai/2010 17:24
- Localisation : Bnei Brak, Israel
Re: Recuperer le contenu d'une page web
Il y a la bibliothèque "Http" qui fonctionne bien pour ça.
Code : Tout sélectionner
InitNetwork()
Dir$ = GetCurrentDirectory()
Page$ = Dir$ + "index.php"
;/ Connexion au site, et téléchargement de la page d'index
Result = ReceiveHTTPFile("http://www.purebasic.fr/french/", Page$)
;/ Lecture du fichier et mise en mémoire
If Result <> 0
If ReadFile(0, Page$)
L = Lof(0) : *Mem = AllocateMemory(L)
If *Mem
ReadData(0, *Mem, L)
Fichier$ = PeekS(*Mem, MemoryStringLength(*Mem), #PB_UTF8)
EndIf
FreeMemory(*Mem) : CloseFile(0)
EndIf
EndIf
Debug Fichier$
Re: Recuperer le contenu d'une page web
Avec le WebGadget, tu as GetGadgetItemText() avec l'attribut #PB_Web_HtmlCode.
-
- Messages : 446
- Inscription : mar. 25/mai/2010 17:24
- Localisation : Bnei Brak, Israel
Re: Recuperer le contenu d'une page web
@chris, c'est ce que je fais en attendant, mais c'a m'oblige a telecharger le fichier alors que je voudrais le lire en ligne
@cls, c'est une bonne idee, mais il faut un webgadget, disons invisible, mais c'est un petit peu tordu comme systeme et peut etre meme plus lent que de recuperer la page.
en fait il ne s'agit que d'une seule ligne, je suis certain d'avoir vu une fois une procedure pour cela
Merci
@cls, c'est une bonne idee, mais il faut un webgadget, disons invisible, mais c'est un petit peu tordu comme systeme et peut etre meme plus lent que de recuperer la page.
en fait il ne s'agit que d'une seule ligne, je suis certain d'avoir vu une fois une procedure pour cela
Merci
Re: Recuperer le contenu d'une page web
Tu parles d'une affaire: Télécharger un fichier de quelques dizaine d'octets.@chris, c'est ce que je fais en attendant, mais c'a m'oblige a telecharger le fichier alors que je voudrais le lire en ligne
D'autant plus que si tu ne changes pas son nom dans la variable "Page$", il est systématiquement écrasé par le téléchargement suivant.
Rien ne t'empêche, une fois qu'il est en mémoire dans le buffer, de le supprimer. Ça ne fait qu'une ligne de code en plus.

-
- Messages : 446
- Inscription : mar. 25/mai/2010 17:24
- Localisation : Bnei Brak, Israel
Re: Recuperer le contenu d'une page web
OK merci, je voulais juste savoir si il n'y a pas plus simple
Re: Recuperer le contenu d'une page web
malheureusement, ce que j'ai ne se fait que par API, j'ai emprunté le code à qqun, je ne sais plus qui ;'(
Code : Tout sélectionner
ProcedureDLL.s Url2Text2(Url.s, OpenType.b,ProxyAndPort.s)
; 1 INTERNET_OPEN_TYPE_DIRECT Resolves all host names locally.
; 0 INTERNET_OPEN_TYPE_PRECONFIG Retrieves the proxy Or direct configuration from the registry.
; 4 INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY Retrieves the proxy Or direct configuration from the registry And prevents the use of a startup Microsoft JScript Or Internet Setup (INS) file.
; 3 INTERNET_OPEN_TYPE_PROXY Passes requests To the proxy unless a proxy bypass list is supplied And the name To be resolved bypasses the proxy. In this Case, the function uses INTERNET_OPEN_TYPE_DIRECT.
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)
If hURL
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)
Else
ProcedureReturn "CONNECTION ERROR"
EndIf
ProcedureReturn RES
EndProcedure
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel
)
Mon site : CeriseCode (Attention Chantier perpétuel
