Avatar billede h-w.dk Nybegynder
26. november 2003 - 18:53 Der er 20 kommentarer

Hjælp til progressbar, og split funktion!

Jeg har et lille program der kan hente filer fra en url man indtaster.

Jeg mangler en kommando, så jeg kan tage indholdet af textbox1 og splitte ved "/" Jeg skal bruge det der står efter den sidste "/" i url'en.

Skal samtidigt bruge en progressbar der indikerer hvor langt jeg er med downloaden, kan man det??
Avatar billede arne_v Ekspert
26. november 2003 - 19:47 #1
Det første spørgsmål må være noget a la:

        Dim parts() As String = url.split("/")
        Dim lastpart As String = parts(parts.Length-1)
Avatar billede h-w.dk Nybegynder
26. november 2003 - 20:22 #2
Takker dor hjælpen....det var svar på det første ;-)

Du ved ikke noget om den sidste?
Avatar billede arne_v Ekspert
26. november 2003 - 20:28 #3
Jeg laver ikke selv GUI.

Men måske kan du få nogle ideer her:

http://www.experts-exchange.com/Programming/Programming_Languages/Dot_Net/Q_20425569.html
Avatar billede h-w.dk Nybegynder
26. november 2003 - 20:30 #4
Det er mest problematikken vedr. at vide hvor stor filen er, og hvor meget man har hentet...
Avatar billede arne_v Ekspert
26. november 2003 - 20:32 #5
Avatar billede h-w.dk Nybegynder
26. november 2003 - 20:34 #6
Jep, men hvordan finder jeg ud af hvor stor filen er? Og hvor meget er der er hentet??
Avatar billede arne_v Ekspert
26. november 2003 - 20:37 #7
Hvor meget du har hentet er jo nemt at holde styr på. Du tælle rbare hvor
mange bytes du har læst.

Total størrelsen ? Hm - den skal jeg lige tygge på !
Avatar billede h-w.dk Nybegynder
26. november 2003 - 20:39 #8
ok...hvis du gider at uddybe lidt...er ret ny i vb.net

Har arbejdet en del med php, men ikke vb...det er til et skole projekt.
Avatar billede h-w.dk Nybegynder
26. november 2003 - 20:39 #9
Kan sagtens smide flere point i hvis det hjælper ;-)
Avatar billede arne_v Ekspert
26. november 2003 - 20:42 #10
Jeg forudsætter at du bruger WebRequest og WebRespons etil at hente med.

WebResponse har en ContentLength property som bør indeholde total
størrelse.
Avatar billede arne_v Ekspert
26. november 2003 - 20:43 #11
Jeg samler på point, men min deltagelse i spørgsmål afhænger ikke
så meget af om der er få eller mange point.
Avatar billede h-w.dk Nybegynder
26. november 2003 - 20:43 #12
Det gør jeg faktisk ikke...

Kode:

    'Deler indholdet af textbox1
        Dim parts() As String = TextBox1.Text.Split("/")
        'Henter den sidste del i parts array
        Dim lastpart As String = parts(parts.Length - 1)

        SaveFileDialog1.FileName = lastpart

        SaveFileDialog1.ShowDialog()

        On Error GoTo errhandle
        S.Text() = "Downloading.........."
        Dim Path As String

        Path = SaveFileDialog1.InitialDirectory

        Dim hent As New System.Net.WebClient
        hent.DownloadFile(TextBox1.Text, Path & SaveFileDialog1.FileName)

        S.Text = "Download Completed"
        Exit Sub
errhandle:
        MsgBox(Err.Description, MsgBoxStyle.Critical, "Error!")
        S.Text = Err.Description
    End Sub
Avatar billede h-w.dk Nybegynder
26. november 2003 - 20:46 #13
Hvor kan jeg finde noget om webrequest etc.
Avatar billede arne_v Ekspert
26. november 2003 - 20:48 #14
Med WebClient DownloadFile har du ikke kontrol nok over downloaden til
at kunn lave en progress bar - du skal bruge de andre for at kunne
lave det.
Avatar billede arne_v Ekspert
26. november 2003 - 20:48 #15
De er naturligvis dokumeneteret i .NET SDK docs (de er også i
System.Net namespace).
Avatar billede h-w.dk Nybegynder
26. november 2003 - 21:11 #16
Synes ikke helt det vil som jeg vil...Kan du komme med et meget lille eksempel på brugen af webclient?
Avatar billede arne_v Ekspert
26. november 2003 - 21:24 #17
Der er en lille artikel her:

http://www.c-sharpcorner.com/vbnet/vbcode/WebClassesVBNETMCB.asp

(men jeg brygger også på et eksempel)
Avatar billede arne_v Ekspert
26. november 2003 - 21:51 #18
Her er det:

Imports System
Imports System.IO
Imports System.Net
Imports System.Text

Class MainClass
    Public Shared Sub Main(ByVal args As String())
        Dim req As HttpWebRequest = CType(WebRequest.Create("http://www.microsoft.com/"), HttpWebRequest)
        Dim resp As HttpWebResponse = CType(req.GetResponse, HttpWebResponse)
        Dim stm As Stream = resp.GetResponseStream
        Dim size As Long = resp.ContentLength
        Dim c As Integer
        Dim res As StringBuilder = New StringBuilder
        dim more as boolean = true
        While (more)
            c = stm.ReadByte
            If (c >= 0) Then
                res.Append(Convert.ToChar(c))
                If (res.Length Mod 1000) = 0 Then
                    Console.WriteLine("we have " & res.Length & " of " & size)
                End If
            Else
                more = false
            End If
        End While
        stm.Close
        resp.Close
    End Sub
End Class
Avatar billede arne_v Ekspert
26. november 2003 - 21:51 #19
og et svar
Avatar billede arne_v Ekspert
11. december 2003 - 21:08 #20
Lukke tid ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester