Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1188 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Quelqu'un pourrait'il m'aider sur une source assez compliqué ! merci

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Quelqu'un pourrait'il m'aider sur une source assez compliqué ! merci

n°200822
remixgame
Posté le 23-08-2002 à 17:21:21  profilanswer
 

voici la source

Code :
  1. Option Explicit
  2. Public Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
  3. Public Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (ByVal hOpen As Long, ByVal sUrl As String, ByVal sHeaders As String, ByVal lLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
  4. Public Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
  5. Public Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer
  6. Public Const INTERNET_OPEN_TYPE_PRECONFIG = 0
  7. Public Const INTERNET_OPEN_TYPE_DIRECT = 1
  8. Public Const INTERNET_OPEN_TYPE_PROXY = 3
  9. Public Const scUserAgent = "VB OpenUrl"
  10. Public Const INTERNET_FLAG_RELOAD = &H80000000
  11. Sub Download(URL As String, SaveAs As String)
  12.         Dim hOpen                            As Long
  13.         Dim hOpenUrl                        As Long
  14.         Dim bDoLoop                      As Boolean
  15.         Dim bRet                                As Boolean
  16.         Dim sReadBuffer              As String * 2048
  17.         Dim lNumberOfBytesRead  As Long
  18.         Dim sBuffer                      As String
  19.         hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
  20.         hOpenUrl = InternetOpenUrl(hOpen, URL, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
  21.         bDoLoop = True
  22.         While bDoLoop
  23.                 sReadBuffer = vbNullString
  24.                 bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
  25.                 sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)
  26.                 If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
  27.              
  28.                
  29.         Wend
  30.        
  31.         Open SaveAs For Binary Access Write As #1
  32.         Put #1, , sBuffer
  33.         Close #1
  34.        
  35.         If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
  36.         If hOpen <> 0 Then InternetCloseHandle (hOpen)
  37. End Sub


ce que j'aimerais c'est ecrire dans un label ou un text
le nombre de bytes à lire et le nombre de byte lu  
pour faire une barre de téléchargement  
MErci


Message édité par remixgame le 23-08-2002 à 17:28:35
mood
Publicité
Posté le 23-08-2002 à 17:21:21  profilanswer
 

n°200852
remixgame
Posté le 23-08-2002 à 17:44:14  profilanswer
 

s'il vous plait aidez moi !!!!!!

n°200936
botman
Cubeur
Posté le 23-08-2002 à 19:54:18  profilanswer
 

remixgame a écrit a écrit :

s'il vous plait aidez moi !!!!!!



c'est du Lustre ca [:totoz]


---------------
"OCPLB : On Casse Pas Le Binôme, 'moiselle Jade, Carlson & Peters, page 823 !"
n°200939
remixgame
Posté le 23-08-2002 à 19:58:11  profilanswer
 

C'est bien dans l'histoire d'avoir repondu mais bon tu n'es pas plus fort que moi et tu ne m'aides pas alors je ne vois pas l'utilité d'envoyer des messages bidons !

n°200966
MagicBuzz
Posté le 23-08-2002 à 21:09:17  profilanswer
 

Ben pour le nb de bytes téléchargés, c'est len(sBuffer)
(le calculer via le left$ et additionner si tes fichiers sont trop gros)
 
maius la taille totale, j'ai pas l'impression que tu puisses la savoir à l'avance.

n°200971
taureau
Posté le 23-08-2002 à 21:28:34  profilanswer
 

pour obteniur la taille totale du dois passer par l'api HttpQueryInfo (voir l'aide) tu lui passes un buffet vide et elle va te retourner la taille que tu devras alors allouer pour récupérer le doc...

n°203539
Musaran
Cerveaulté
Posté le 28-08-2002 à 01:58:27  profilanswer
 

Je sais que ce n'est pas la question, mais ceci:

bDoLoop = True
While bDoLoop
   '...
   If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
Wend


Équivaut à ceci:

Do
   '...
While CBool(lNumberOfBytesRead)


Cette ligne risque d'être très lente avec de grandes tailles:

sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)

Pourquoi la lecture se fait-elle en plusieurs fois ?


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Quelqu'un pourrait'il m'aider sur une source assez compliqué ! merci

 

Sujets relatifs
Est-ce compliqué de faire un menu style Menu démarrer ?[open gl] c quoi la différence entre une source de lumière et...
[SHELL-SCRIPT] forwarding files by mail [RESOLU] merciQqun pourrait faire ça ?
A ceux qui utilisent ANT...[Résolu merci Dark et Greg][MERCI RESOLU] shell sh....AWK grace au melange d'idees
Pouvez vous m'aider mise en forme de nombre ! svp[PHP] je ne capte pas !! [RESOLU] MERCI Mais ya encore une question !
[PHP] Jeux en open source e php/sql[MySQL] Pourrait on m expliquer........
Plus de sujets relatifs à : Quelqu'un pourrait'il m'aider sur une source assez compliqué ! merci


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR