Ben j'ai trouvé tout seul !
Le mvp de permanence devait encore dormir, pourtant ils sont bien
payés, alors je propose que le mvp de permanence laisse ici son numéro de
téléphone, comme ça si on a besoin de lui en pleine nuit, on peut
l'appeler :o)
Voici le code, il faut aussi une un module de classe et une dll
(fournie normalement avec WinZip), ci-joint en 2 fichiers, au cas où ça
intéresserait quelqu'un (l'extraction sur Internet d'un zip depuis vb):
' loto form1
'
Option Explicit
Private Declare Function URLDownloadToFile Lib "urlmon" Alias
"URLDownloadToFileA" _
(ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As
String, _
ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'
Sub Form_Load()
ChDrive App.Path
ChDir App.Path
End Sub
Sub Command1_Click() 'tél loto
Dim dest As String
Dim adr As String
Dim rep
Dim zip As ZipExtractionClass
Set zip = New ZipExtractionClass
'
adr = "http://www.fdjeux.com/generated/dyn/loto/loto.zip"
dest = App.Path & ""
dest = dest & Mid$(adr, 1 + InStrRev(adr, "/")) ' /loto.zip
rep = URLDownloadToFile(0&, adr, dest, 0&, 0&)
'
DoEvents ' à améliorer au timer avec -> tant que fichier inexistant et
arrêt manuel...
Sleep 5000
'
rep = zip.OpenZip(dest)
rep = zip.Extract(App.Path & "")
zip.CloseZip
Set zip = Nothing
'
Unload Form1
End
End Sub
"LE TROLL" <le a écrit dans le message de news:
O8r%Problème simple, j'ai besoin d'une part de copier le fichier sous-cité
depuis Internet dans le répertoire de mon application:
http://www.fdjeux.com/generated/dyn/loto/loto.zip
Puis de le déziper afin de pouvoir le lire (texte norme csv).
Ben j'ai trouvé tout seul !
Le mvp de permanence devait encore dormir, pourtant ils sont bien
payés, alors je propose que le mvp de permanence laisse ici son numéro de
téléphone, comme ça si on a besoin de lui en pleine nuit, on peut
l'appeler :o)
Voici le code, il faut aussi une un module de classe et une dll
(fournie normalement avec WinZip), ci-joint en 2 fichiers, au cas où ça
intéresserait quelqu'un (l'extraction sur Internet d'un zip depuis vb):
' loto form1
'
Option Explicit
Private Declare Function URLDownloadToFile Lib "urlmon" Alias
"URLDownloadToFileA" _
(ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As
String, _
ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'
Sub Form_Load()
ChDrive App.Path
ChDir App.Path
End Sub
Sub Command1_Click() 'tél loto
Dim dest As String
Dim adr As String
Dim rep
Dim zip As ZipExtractionClass
Set zip = New ZipExtractionClass
'
adr = "http://www.fdjeux.com/generated/dyn/loto/loto.zip"
dest = App.Path & ""
dest = dest & Mid$(adr, 1 + InStrRev(adr, "/")) ' /loto.zip
rep = URLDownloadToFile(0&, adr, dest, 0&, 0&)
'
DoEvents ' à améliorer au timer avec -> tant que fichier inexistant et
arrêt manuel...
Sleep 5000
'
rep = zip.OpenZip(dest)
rep = zip.Extract(App.Path & "")
zip.CloseZip
Set zip = Nothing
'
Unload Form1
End
End Sub
"LE TROLL" <le troll@enfer.fr> a écrit dans le message de news:
O8r%23TQbQHHA.1200@TK2MSFTNGP02.phx.gbl...
Problème simple, j'ai besoin d'une part de copier le fichier sous-cité
depuis Internet dans le répertoire de mon application:
http://www.fdjeux.com/generated/dyn/loto/loto.zip
Puis de le déziper afin de pouvoir le lire (texte norme csv).
Ben j'ai trouvé tout seul !
Le mvp de permanence devait encore dormir, pourtant ils sont bien
payés, alors je propose que le mvp de permanence laisse ici son numéro de
téléphone, comme ça si on a besoin de lui en pleine nuit, on peut
l'appeler :o)
Voici le code, il faut aussi une un module de classe et une dll
(fournie normalement avec WinZip), ci-joint en 2 fichiers, au cas où ça
intéresserait quelqu'un (l'extraction sur Internet d'un zip depuis vb):
' loto form1
'
Option Explicit
Private Declare Function URLDownloadToFile Lib "urlmon" Alias
"URLDownloadToFileA" _
(ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As
String, _
ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'
Sub Form_Load()
ChDrive App.Path
ChDir App.Path
End Sub
Sub Command1_Click() 'tél loto
Dim dest As String
Dim adr As String
Dim rep
Dim zip As ZipExtractionClass
Set zip = New ZipExtractionClass
'
adr = "http://www.fdjeux.com/generated/dyn/loto/loto.zip"
dest = App.Path & ""
dest = dest & Mid$(adr, 1 + InStrRev(adr, "/")) ' /loto.zip
rep = URLDownloadToFile(0&, adr, dest, 0&, 0&)
'
DoEvents ' à améliorer au timer avec -> tant que fichier inexistant et
arrêt manuel...
Sleep 5000
'
rep = zip.OpenZip(dest)
rep = zip.Extract(App.Path & "")
zip.CloseZip
Set zip = Nothing
'
Unload Form1
End
End Sub
"LE TROLL" <le a écrit dans le message de news:
O8r%Problème simple, j'ai besoin d'une part de copier le fichier sous-cité
depuis Internet dans le répertoire de mon application:
http://www.fdjeux.com/generated/dyn/loto/loto.zip
Puis de le déziper afin de pouvoir le lire (texte norme csv).
Hello,
Bien que ça ait été à titre humoristique, je trouve la remarque déplacée,
en ce sens que Jean-Marc (ou tout autre intervenant de ce groupe
d'ailleurs) consacre un temps et une énergie assez considérable pour la
communauté. Plus particulièrement, je crois pouvoir dire que c'est grâce
à ses contributions que la faq vb est à nouveau active! Je n'ai peut-être
pas un sens de l'humour assez fin que pour apprécier la plaisanterie; je
trouve qu'elle est irrespectueuse envers le seul MVP de ce groupe! Bien
entendu, ce n'est que mon point de vue, et je ne peut parler à sa place.
Soit! Tu indiquais préférer du "code" aux APIs. Je suppose que le "code"
dont il s'agit est le subset de VB sans appels à quelque autre composant
externe (pas de référence, pas de declare function, ...)
Dans ce cas, je te propose plutôt la solution suivante:
Pour télécharger le fichier, crée un usercontrol et emploie la méthode:
UserControl.AsyncRead Url, vbAsyncTypeFile, Fichier
A noter le dernier argument qui permet en plus de définir comment le
téléchargement doit être effectué.
Si le téléchargement doit être synchrone (comme dans ton cas) par exemple:
vbAsyncReadSynchronousDownload
Tu pourra éventuellement récupérer l'état du téléchargement à l'aide de:
UserControl_AsyncReadComplete
UserControl_AsyncReadProgress
Pour ce qui est du chemin, je te déconseille vivement App.Path.
La faq est très précise à ce sujet:
Destination des fichiers)
Pour ne pas utiliser d'APIs, il existe la possibilité d'utiliser environ.
Pour une compatibilité maximale avec Win 9x, la variable d'environnement
TEMP pourrait être à privilégier. Je te laisse le soin d'étudier la
question.
Enfin, apparement, d'après mes recharches, ton code se base plutôt sur un
wrapper de zlib (donc redistribuable et approprié) que sur une dll winzip.
Voir à ce sujet:
http://www.paradoxes.info/code/ZipExtractionClass.html
Il est aussi possibilté d'éviter toute référence externe (ce qu'on apelle
API en d'autres termes) en implémentant la partie utile de la
specification zip:
http://www.pkware.com/index.php?option=com_content&task=view&idd&Itemid7
--
Picalausa François
"LE TROLL" <le a écrit dans le message de news:
%Ben j'ai trouvé tout seul !
Le mvp de permanence devait encore dormir, pourtant ils sont bien
payés, alors je propose que le mvp de permanence laisse ici son numéro de
téléphone, comme ça si on a besoin de lui en pleine nuit, on peut
l'appeler :o)
Voici le code, il faut aussi une un module de classe et une dll
(fournie normalement avec WinZip), ci-joint en 2 fichiers, au cas où ça
intéresserait quelqu'un (l'extraction sur Internet d'un zip depuis vb):
' loto form1
'
Option Explicit
Private Declare Function URLDownloadToFile Lib "urlmon" Alias
"URLDownloadToFileA" _
(ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As
String, _
ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'
Sub Form_Load()
ChDrive App.Path
ChDir App.Path
End Sub
Sub Command1_Click() 'tél loto
Dim dest As String
Dim adr As String
Dim rep
Dim zip As ZipExtractionClass
Set zip = New ZipExtractionClass
'
adr = "http://www.fdjeux.com/generated/dyn/loto/loto.zip"
dest = App.Path & ""
dest = dest & Mid$(adr, 1 + InStrRev(adr, "/")) ' /loto.zip
rep = URLDownloadToFile(0&, adr, dest, 0&, 0&)
'
DoEvents ' à améliorer au timer avec -> tant que fichier inexistant et
arrêt manuel...
Sleep 5000
'
rep = zip.OpenZip(dest)
rep = zip.Extract(App.Path & "")
zip.CloseZip
Set zip = Nothing
'
Unload Form1
End
End Sub
"LE TROLL" <le a écrit dans le message de news:
O8r%Problème simple, j'ai besoin d'une part de copier le fichier
sous-cité
depuis Internet dans le répertoire de mon application:
http://www.fdjeux.com/generated/dyn/loto/loto.zip
Puis de le déziper afin de pouvoir le lire (texte norme csv).
Hello,
Bien que ça ait été à titre humoristique, je trouve la remarque déplacée,
en ce sens que Jean-Marc (ou tout autre intervenant de ce groupe
d'ailleurs) consacre un temps et une énergie assez considérable pour la
communauté. Plus particulièrement, je crois pouvoir dire que c'est grâce
à ses contributions que la faq vb est à nouveau active! Je n'ai peut-être
pas un sens de l'humour assez fin que pour apprécier la plaisanterie; je
trouve qu'elle est irrespectueuse envers le seul MVP de ce groupe! Bien
entendu, ce n'est que mon point de vue, et je ne peut parler à sa place.
Soit! Tu indiquais préférer du "code" aux APIs. Je suppose que le "code"
dont il s'agit est le subset de VB sans appels à quelque autre composant
externe (pas de référence, pas de declare function, ...)
Dans ce cas, je te propose plutôt la solution suivante:
Pour télécharger le fichier, crée un usercontrol et emploie la méthode:
UserControl.AsyncRead Url, vbAsyncTypeFile, Fichier
A noter le dernier argument qui permet en plus de définir comment le
téléchargement doit être effectué.
Si le téléchargement doit être synchrone (comme dans ton cas) par exemple:
vbAsyncReadSynchronousDownload
Tu pourra éventuellement récupérer l'état du téléchargement à l'aide de:
UserControl_AsyncReadComplete
UserControl_AsyncReadProgress
Pour ce qui est du chemin, je te déconseille vivement App.Path.
La faq est très précise à ce sujet:
Destination des fichiers)
Pour ne pas utiliser d'APIs, il existe la possibilité d'utiliser environ.
Pour une compatibilité maximale avec Win 9x, la variable d'environnement
TEMP pourrait être à privilégier. Je te laisse le soin d'étudier la
question.
Enfin, apparement, d'après mes recharches, ton code se base plutôt sur un
wrapper de zlib (donc redistribuable et approprié) que sur une dll winzip.
Voir à ce sujet:
http://www.paradoxes.info/code/ZipExtractionClass.html
Il est aussi possibilté d'éviter toute référence externe (ce qu'on apelle
API en d'autres termes) en implémentant la partie utile de la
specification zip:
http://www.pkware.com/index.php?option=com_content&task=view&idd&Itemid7
--
Picalausa François
"LE TROLL" <le troll@enfer.fr> a écrit dans le message de news:
%23A4zRRcQHHA.4692@TK2MSFTNGP05.phx.gbl...
Ben j'ai trouvé tout seul !
Le mvp de permanence devait encore dormir, pourtant ils sont bien
payés, alors je propose que le mvp de permanence laisse ici son numéro de
téléphone, comme ça si on a besoin de lui en pleine nuit, on peut
l'appeler :o)
Voici le code, il faut aussi une un module de classe et une dll
(fournie normalement avec WinZip), ci-joint en 2 fichiers, au cas où ça
intéresserait quelqu'un (l'extraction sur Internet d'un zip depuis vb):
' loto form1
'
Option Explicit
Private Declare Function URLDownloadToFile Lib "urlmon" Alias
"URLDownloadToFileA" _
(ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As
String, _
ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'
Sub Form_Load()
ChDrive App.Path
ChDir App.Path
End Sub
Sub Command1_Click() 'tél loto
Dim dest As String
Dim adr As String
Dim rep
Dim zip As ZipExtractionClass
Set zip = New ZipExtractionClass
'
adr = "http://www.fdjeux.com/generated/dyn/loto/loto.zip"
dest = App.Path & ""
dest = dest & Mid$(adr, 1 + InStrRev(adr, "/")) ' /loto.zip
rep = URLDownloadToFile(0&, adr, dest, 0&, 0&)
'
DoEvents ' à améliorer au timer avec -> tant que fichier inexistant et
arrêt manuel...
Sleep 5000
'
rep = zip.OpenZip(dest)
rep = zip.Extract(App.Path & "")
zip.CloseZip
Set zip = Nothing
'
Unload Form1
End
End Sub
"LE TROLL" <le troll@enfer.fr> a écrit dans le message de news:
O8r%23TQbQHHA.1200@TK2MSFTNGP02.phx.gbl...
Problème simple, j'ai besoin d'une part de copier le fichier
sous-cité
depuis Internet dans le répertoire de mon application:
http://www.fdjeux.com/generated/dyn/loto/loto.zip
Puis de le déziper afin de pouvoir le lire (texte norme csv).
Hello,
Bien que ça ait été à titre humoristique, je trouve la remarque déplacée,
en ce sens que Jean-Marc (ou tout autre intervenant de ce groupe
d'ailleurs) consacre un temps et une énergie assez considérable pour la
communauté. Plus particulièrement, je crois pouvoir dire que c'est grâce
à ses contributions que la faq vb est à nouveau active! Je n'ai peut-être
pas un sens de l'humour assez fin que pour apprécier la plaisanterie; je
trouve qu'elle est irrespectueuse envers le seul MVP de ce groupe! Bien
entendu, ce n'est que mon point de vue, et je ne peut parler à sa place.
Soit! Tu indiquais préférer du "code" aux APIs. Je suppose que le "code"
dont il s'agit est le subset de VB sans appels à quelque autre composant
externe (pas de référence, pas de declare function, ...)
Dans ce cas, je te propose plutôt la solution suivante:
Pour télécharger le fichier, crée un usercontrol et emploie la méthode:
UserControl.AsyncRead Url, vbAsyncTypeFile, Fichier
A noter le dernier argument qui permet en plus de définir comment le
téléchargement doit être effectué.
Si le téléchargement doit être synchrone (comme dans ton cas) par exemple:
vbAsyncReadSynchronousDownload
Tu pourra éventuellement récupérer l'état du téléchargement à l'aide de:
UserControl_AsyncReadComplete
UserControl_AsyncReadProgress
Pour ce qui est du chemin, je te déconseille vivement App.Path.
La faq est très précise à ce sujet:
Destination des fichiers)
Pour ne pas utiliser d'APIs, il existe la possibilité d'utiliser environ.
Pour une compatibilité maximale avec Win 9x, la variable d'environnement
TEMP pourrait être à privilégier. Je te laisse le soin d'étudier la
question.
Enfin, apparement, d'après mes recharches, ton code se base plutôt sur un
wrapper de zlib (donc redistribuable et approprié) que sur une dll winzip.
Voir à ce sujet:
http://www.paradoxes.info/code/ZipExtractionClass.html
Il est aussi possibilté d'éviter toute référence externe (ce qu'on apelle
API en d'autres termes) en implémentant la partie utile de la
specification zip:
http://www.pkware.com/index.php?option=com_content&task=view&idd&Itemid7
--
Picalausa François
"LE TROLL" <le a écrit dans le message de news:
%Ben j'ai trouvé tout seul !
Le mvp de permanence devait encore dormir, pourtant ils sont bien
payés, alors je propose que le mvp de permanence laisse ici son numéro de
téléphone, comme ça si on a besoin de lui en pleine nuit, on peut
l'appeler :o)
Voici le code, il faut aussi une un module de classe et une dll
(fournie normalement avec WinZip), ci-joint en 2 fichiers, au cas où ça
intéresserait quelqu'un (l'extraction sur Internet d'un zip depuis vb):
' loto form1
'
Option Explicit
Private Declare Function URLDownloadToFile Lib "urlmon" Alias
"URLDownloadToFileA" _
(ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As
String, _
ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'
Sub Form_Load()
ChDrive App.Path
ChDir App.Path
End Sub
Sub Command1_Click() 'tél loto
Dim dest As String
Dim adr As String
Dim rep
Dim zip As ZipExtractionClass
Set zip = New ZipExtractionClass
'
adr = "http://www.fdjeux.com/generated/dyn/loto/loto.zip"
dest = App.Path & ""
dest = dest & Mid$(adr, 1 + InStrRev(adr, "/")) ' /loto.zip
rep = URLDownloadToFile(0&, adr, dest, 0&, 0&)
'
DoEvents ' à améliorer au timer avec -> tant que fichier inexistant et
arrêt manuel...
Sleep 5000
'
rep = zip.OpenZip(dest)
rep = zip.Extract(App.Path & "")
zip.CloseZip
Set zip = Nothing
'
Unload Form1
End
End Sub
"LE TROLL" <le a écrit dans le message de news:
O8r%Problème simple, j'ai besoin d'une part de copier le fichier
sous-cité
depuis Internet dans le répertoire de mon application:
http://www.fdjeux.com/generated/dyn/loto/loto.zip
Puis de le déziper afin de pouvoir le lire (texte norme csv).
Heu, je ne suis pas certain de mettre bien expliqué, en fait je
privilégie le code VB et les objets (composants) de base (ceux qui ne sont
pas à rajouter manuellement avec me menu), car presque tous les jours on
voit les problèmes engendrés: <snip>
Dans mon problème de Net, n'ayant pas trouvé autre chose, j'ai pris le
module de classe avec les API et une pseudo-DLL, mais là je n'avais à ma
connaissance (limitée), le choix de faire autrement, sinon j'évite.
Heu, ta faq vb 143 ne parle pas de App.Path, enfin, je n'ai pas trouvé?
App.Path définit le dossier courant
si on l'assimile au disque puis au dossier, je n'ai jamais eu de
problèmes, je conçois tout dans le dossier du programme (voir un
sous-dossier), et ça marche du tonnerre, quel est le problème ?
Je vais jeter un oeil à "TEMP"
C'est donc toi qui es de permanence pour la fin de semaine :o)
Heu, je ne suis pas certain de mettre bien expliqué, en fait je
privilégie le code VB et les objets (composants) de base (ceux qui ne sont
pas à rajouter manuellement avec me menu), car presque tous les jours on
voit les problèmes engendrés: <snip>
Dans mon problème de Net, n'ayant pas trouvé autre chose, j'ai pris le
module de classe avec les API et une pseudo-DLL, mais là je n'avais à ma
connaissance (limitée), le choix de faire autrement, sinon j'évite.
Heu, ta faq vb 143 ne parle pas de App.Path, enfin, je n'ai pas trouvé?
App.Path définit le dossier courant
si on l'assimile au disque puis au dossier, je n'ai jamais eu de
problèmes, je conçois tout dans le dossier du programme (voir un
sous-dossier), et ça marche du tonnerre, quel est le problème ?
Je vais jeter un oeil à "TEMP"
C'est donc toi qui es de permanence pour la fin de semaine :o)
Heu, je ne suis pas certain de mettre bien expliqué, en fait je
privilégie le code VB et les objets (composants) de base (ceux qui ne sont
pas à rajouter manuellement avec me menu), car presque tous les jours on
voit les problèmes engendrés: <snip>
Dans mon problème de Net, n'ayant pas trouvé autre chose, j'ai pris le
module de classe avec les API et une pseudo-DLL, mais là je n'avais à ma
connaissance (limitée), le choix de faire autrement, sinon j'évite.
Heu, ta faq vb 143 ne parle pas de App.Path, enfin, je n'ai pas trouvé?
App.Path définit le dossier courant
si on l'assimile au disque puis au dossier, je n'ai jamais eu de
problèmes, je conçois tout dans le dossier du programme (voir un
sous-dossier), et ça marche du tonnerre, quel est le problème ?
Je vais jeter un oeil à "TEMP"
C'est donc toi qui es de permanence pour la fin de semaine :o)