Page 1 sur 1
Barre de progression
Publié : dim. 20/févr./2011 3:25
par Programmes
Bonsoir à tous,
Je voulais savoir si j'avais la possibilité d'afficher une barre de progression lors d'un téléchargement sur Internet. Merci pour toutes vos réponses.
Re: Barre de progression
Publié : dim. 20/févr./2011 4:41
par Ar-S
Bonjour,
Pour te répondre, oui c'est possible.
Je te conseils d'utiliser la fonction de recherche du forum et de consulter la doc coté ProgressBar
Dans les recherches, ce dernier terme me mène ici :
http://www.purebasic.fr/french/viewtopi ... ar#p124854
Re: Barre de progression
Publié : dim. 20/févr./2011 13:02
par Programmes
Bonjour et merci pour la réponse. J'ai télécharger
http://www.purearea.net/pb/CodeArchiv/I ... ressBar.pb mais sur le téléchaargement d'une vidéo au format .wmv j'ai une erreur. Il télécharge très bien le fichier mais la progressbar n'ai pas mise à jour car Filesize=0. Pouvez-vous m'aider?
Merci
Code : Tout sélectionner
Procedure UrlToFileWithProgress(myFile.s,URL.s)
isLoop.b=1
Bytes.l=0
fBytes.l=0
Buffer.l=4096
res.s=""
tmp.s=""
OpenType.b=1
INTERNET_FLAG_RELOAD.l=$80000000
INTERNET_DEFAULT_HTTP_PORT.l=80
INTERNET_SERVICE_HTTP.l=3
HTTP_QUERY_STATUS_CODE.l=19
HTTP_QUERY_STATUS_TEXT.l=20
HTTP_QUERY_RAW_HEADERS.l=21
HTTP_QUERY_RAW_HEADERS_CRLF.l=22
memID=AllocateMemory(Buffer)
Result=CreateFile(1,myFile)
hInet=InternetOpen_("",OpenType,#Null,#Null,0)
hURL=InternetOpenUrl_(hInet,URL,#Null,0,INTERNET_FLAG_RELOAD,0)
;get Filesize
domain.s=ReplaceString(Left(URL,(FindString(URL,"/",8) - 1)),"http://","")
hInetCon=InternetConnect_(hInet,domain,INTERNET_DEFAULT_HTTP_PORT,#Null,#Null,INTERNET_SERVICE_HTTP,0,0)
If hInetCon > 0
hHttpOpenRequest=HttpOpenRequest_(hInetCon,"HEAD",ReplaceString(URL,"http://"+domain+"/",""),"http/1.1",#Null,0,INTERNET_FLAG_RELOAD,0)
If hHttpOpenRequest > 0
iretval=HttpSendRequest_(hHttpOpenRequest,#Null,0,0,0)
If iretval > 0
tmp=GetQueryInfo(hHttpOpenRequest,HTTP_QUERY_STATUS_CODE)
If Trim(tmp)="200"
tmp=GetQueryInfo(hHttpOpenRequest,HTTP_QUERY_RAW_HEADERS_CRLF)
If FindString(tmp,"Content-Length:",1)>0
ii.l=FindString(tmp,"Content-Length:",1)+Len("Content-Length:")
tmp=Mid(tmp,ii,Len(tmp)-ii)
myMax=Val(Trim(tmp))
EndIf
EndIf
EndIf
EndIf
EndIf
SetGadgetText(#Label,"Filesize: "+Str(myMax))
SetProgressbarRange(#progressbar,0,myMax)
;start downloading
Repeat
InternetReadFile_(hURL,memID,Buffer,@Bytes)
If Bytes=0
isLoop=0
Else
fBytes=fBytes+Bytes
SetGadgetText(#Label2,"Received Bytes: "+Str(fBytes))
If myMax >= fBytes: SetGadgetState(#progressbar,fBytes): EndIf
WriteData(1,memID,Bytes)
EndIf
DoEvents()
Until isLoop=0
InternetCloseHandle_(hURL)
InternetCloseHandle_(hInet)
SetGadgetState(#progressbar,0)
CloseFile(1)
FreeMemory(memID)
EndProcedure
Re: Barre de progression
Publié : dim. 20/févr./2011 13:16
par Ar-S
Mon lien ne te convient pas ?
Re: Barre de progression
Publié : dim. 20/févr./2011 13:24
par Programmes
Au contraire! Je dirais même qu'il est très bien fait. Mon seul soucis est de ne pas pouvoir m'être la barre de progression à jour.
Re: Barre de progression
Publié : dim. 20/févr./2011 14:38
par Programmes
Personne ne peut répondre à mon problème?
Re: Barre de progression
Publié : dim. 20/févr./2011 15:11
par Backup
Programmes a écrit :Au contraire! Je dirais même qu'il est très bien fait. Mon seul soucis est de ne pas pouvoir m'être la barre de progression à jour.
tu parle de mon code ??
Ar-s t'a donné ce lien :
http://www.purebasic.fr/french/viewtopi ... ar#p124854
donc tu parle de mon code !!?
si tu parle bien de mon code ,
c'est que c'est toi qui merdoie , car mon code fonctionne !!
d'ailleurs t'a qu'a essayer , tu verra bien
mais je te soupçonne de ne pas avoir été voir le lien de Ars qui pointe sur mon code
ni meme de l'avoir essayé
mais de continuer a parler de TON lien
et là, je dois dire, je me fout qu'il ne marche pas
t'a qu'a suivre les conseils qu'on te donne.... point
Re: Barre de progression
Publié : dim. 20/févr./2011 15:22
par Chris
Si ton Filesize reste a 0, c'est certainement parce qu'il n'a pas de fin : Comme un stream, par exemple.
Autrement, il n'y a pas de raison que ça ne fonctionne pas.
Mais bon! J'ai pas essayé ton code, vu qu'il n'y a que la procédure, et que j'ai vraiment pas envie de m'emmerder à faire tout ce qui doit aller autour.
Chuis fatigué, moi! J'vais faire la sieste!

Re: Barre de progression
Publié : dim. 20/févr./2011 16:28
par Backup
+1 pour le stream
au pire pour savoir , met ici l'adresse url de ton fichier video ...

Re: Barre de progression
Publié : dim. 20/févr./2011 17:21
par Ar-S
ou audio

Re: Barre de progression
Publié : dim. 20/févr./2011 19:29
par Programmes
Je te remercie pour ton code!!!
J'ai enfn trouver! Ma vidéo était protégé par un login et mot de passe if fallait donc remplacer deux lignes:
Code : Tout sélectionner
domain.s=ReplaceString(Left(URL,(FindString(URL,"/",8) - 1)),"http://","")
hHttpOpenRequest=HttpOpenRequest_(hInetCon,"HEAD",ReplaceString(URL,"http://"+domain+"/",""),"http/1.1",#Null,0,INTERNET_FLAG_RELOAD,0)
par:
Code : Tout sélectionner
domain.s=ReplaceString(Left(URL,(FindString(URL,"/",8) - 1)),"http://"+NomUtilisateur+":"+Pass+"@","")
hHttpOpenRequest=HttpOpenRequest_(hInetCon,"HEAD",ReplaceString(URL,"http://"+NomUtilisateur+":"+Pass+"@"+domain+"/",""),"http/1.1",#Null,0,INTERNET_FLAG_RELOAD,0)
Encore merci.
Re: Barre de progression
Publié : dim. 20/févr./2011 19:35
par Backup
ha la bonne heure

Re: Barre de progression
Publié : dim. 20/févr./2011 23:07
par Ar-S
Dobro a écrit :ha la bonne heure

J'ai toujours trouvé cette expression étrange. Vous connaissez son historique ?
C'est genre "Ha là là, quelle bonne heure ?"
Re: Barre de progression
Publié : dim. 20/févr./2011 23:12
par Backup
en fait elle veut dire literalement ce qu'elle veux dire
c'est a dire qu'on exprime le fait qu'on passe un bon moment a l'heure presente
donc on dit "ha, quelle bonne heure" ( note la double signification ) quel bonheur ...
et donc ;"ha , la bonne heure... que je passe , d'apprendre que tout ce termine bien... "
ha la bonne heure ; il a compris
