Richard87 Skrevet 3. april 2005 Skrevet 3. april 2005 (endret) Kossen kan eg lasta ner filer fra internet og samtidig vise progress? filå eg ska lasta ner e: http://www.freewebs.com/shortcutmanager/update når eg laste ner version så går det greit, siden den e lite(3kb) men Update e ganske store..(1,5mb) så det går ganske treigt... någen ide? akkuratt nå bruke eg inet kontrollen... Endret 17. april 2005 av Richard87
Jonas Skrevet 3. april 2005 Skrevet 3. april 2005 Jeg mener å huske at dette eksempelet brukte Inet-kontrolleren. Uansett, sikkert brukelig
aadnk Skrevet 3. april 2005 Skrevet 3. april 2005 Man trenger ikke benytte Inet-kontrollen. Sant å si kan dette faktisk gjøres via AsyncRead i en brukerkontroll, der man faktisk kan laste ned flere filer samtidig og likevel få progresjonen av de enkelte nedlastningene: http://www.pscode.com/vb/scripts/ShowCode....=44135&lngWId=1
Richard87 Skrevet 3. april 2005 Forfatter Skrevet 3. april 2005 hm, kossen fyngere AsynRead, kossen kan eg bruka ann samen med en vanlig form, e eg nødt og bruka ein ActiveX Dll, Ocx, Documend?
aadnk Skrevet 3. april 2005 Skrevet 3. april 2005 Du kan fint legge inn brukerkontrollen i prosjektet ditt uten noen form for problematikk, antar jeg. Det skulle ikke spille noen rolle.
Richard87 Skrevet 3. april 2005 Forfatter Skrevet 3. april 2005 det vett eg, det eg lure på, e om eg e nødt og bruka ein usercontrol, eller om eg kan gjør det på en annen måte for og slippe det?
Richard87 Skrevet 17. april 2005 Forfatter Skrevet 17. april 2005 ok, eg har fått alt te og virka nå, men bestemte meg for og oppgradera, då fant eg ut at ann ikkje greide og lasta ner serligt store filer... ikkje med og bare dima ein sBuffer() As byte iallefal, någen som har en bedre ide te kossen eg kan lasta ner _STORE_ filer med AsycRead metoden? (ca. 700mb)
Jonas Skrevet 17. april 2005 Skrevet 17. april 2005 Du sier ikke noe om hva som skjedde, men jeg regner med at du prøvde å legge hele filen i en variabel og fikk overflow-error? Gjør som andre p2p-programmer - Legg alt i en buffer-fil.
Richard87 Skrevet 17. april 2005 Forfatter Skrevet 17. april 2005 hmm... ko mange byte takle et dynamisk byte array?
aadnk Skrevet 17. april 2005 Skrevet 17. april 2005 (endret) Jeg tror det er 32767. En byte-array kan håndtere omtrent 2 GB med rå data, slik at problemet ligger neppe der. Du må laste ned filer slik som vist i eksempelet jeg henviste til ovenfor - ved å skrive til filen hver gang en mottar informasjon. Da slipper du å lagre all informasjon i RAM-en. Endret 17. april 2005 av aadnk
Richard87 Skrevet 21. april 2005 Forfatter Skrevet 21. april 2005 (endret) så vitt eg kan se i eksempelet du henviste til ovefor lagret den alt til minnet.. og i koden fra planet-source-code blei iallefall alt lagret i minnet... Private Sub UserControl_AsyncReadComplete(AsyncProp As AsyncProperty) On Error Resume Next Dim f() As Byte, fn As Long If AsyncProp.BytesMax <> 0 Then fn = FreeFile f = AsyncProp.Value Open AsyncProp.PropertyName For Binary Access Write As #fn Put #fn, , f Close #fn Else RaiseEvent DownloadError(AsyncProp.PropertyName) End If RaiseEvent DownloadComplete(CLng(AsyncProp.BytesMax), AsyncProp.PropertyName) End Sub (legg merke til at filen blir skrevet _før_ du får DownloadComplete.. Noen god ide til hvordan jeg kan lage denne buffer filen? finnes det noen "Open For Binary Append" eller lignende kode? kan du bruke Get/Put selv om du åpner filen for "Append"? [EDIT] Uanz, blir ikke alt lagret i AsyncProp.Value uanset? [EDIT2] Kossen fungere det vis eg bruke vbAsyncTypeFile? Endret 21. april 2005 av Richard87
aadnk Skrevet 22. april 2005 Skrevet 22. april 2005 Du kan nok slette AsyncProp.Value periodevis etter som filsegmentene skrives til harddisken, omtrent således: Private Sub UserControl_AsyncReadComplete(AsyncProp As AsyncProperty) On Error Resume Next If AsyncProp.BytesMax <> 0 Then RaiseEvent DownloadError(AsyncProp.PropertyName) Exit Sub End If RaiseEvent DownloadComplete(CLng(AsyncProp.BytesMax), AsyncProp.PropertyName) End Sub Private Sub UserControl_AsyncReadProgress(AsyncProp As AsyncProperty) On Error Resume Next Dim Bytes() As Byte, File As Long ' Fortsett kun dersom segmentet er ferdig nedlastet If AsyncProp.BytesMax <> 0 Then File = FreeFile Bytes = AsyncProp.Value ' Skriv til fil Open AsyncProp.PropertyName For Binary Access Write As #File Put #File, AsyncProp.BytesRead + 1, Bytes Close #File ' Tøm buffer AsyncProp.Value = Null ' Fortell om hendelsen RaiseEvent DownloadProgress(CLng(AsyncProp.BytesRead), CLng(AsyncProp.BytesMax), AsyncProp.PropertyName) End If End Sub Public Sub BeginDownload(url As String, SaveFile As String) ' Slett fil dersom den allerede eksisterer If Dir(SaveFile) <> "" Then Kill SaveFile End If UserControl.AsyncRead url, vbAsyncTypeByteArray, SaveFile, vbAsyncReadForceUpdate End Sub
Richard87 Skrevet 22. april 2005 Forfatter Skrevet 22. april 2005 hmm ,det var rart, jeg fikk en error melding hver gang jeg prøvde og sette AsyncProp.Value til 0, Null, vbNull, Nothing etc error meldingen hvar "Object required"(el)
aadnk Skrevet 22. april 2005 Skrevet 22. april 2005 error meldingen hvar "Object required"(el) AsyncProp.Value blir altså markert med feilmeldingen "Object required"? Benytter du AsyncProp As AsyncProperty øverst i prosedyredeklareringen til AsyncReadProgress?
Richard87 Skrevet 23. april 2005 Forfatter Skrevet 23. april 2005 (endret) VB6 med SP 6.. virker det oss deg? har du noe kode? Endret 23. april 2005 av Richard87
aadnk Skrevet 23. april 2005 Skrevet 23. april 2005 VB6 med SP 6.. virker det oss deg? har du noe kode? Jeg erstatter simpelthen prosedyrene med de ovenfor i PSC-prosjektet.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå