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 ?? :roll:

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 :roll:

mais je te soupçonne de ne pas avoir été voir le lien de Ars qui pointe sur mon code :twisted:
ni meme de l'avoir essayé :roll:



mais de continuer a parler de TON lien
et là, je dois dire, je me fout qu'il ne marche pas :mrgreen:

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 :mrgreen:

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 :D

:)