webForumDet fria alternativet

Visa hur långt det har kopierat

.NET

3 svar · 217 visningar · startad av xcalibrate

Medlem sedan aug. 2002136 inlägg
Frågan#1

Hejsan, jag har denna kod:

        Dim OldFile, NewFile As String
        OldFile = txtCopy.Text
        NewFile = txtTo.Text & Filnamn
        ProgressBar1.Max = FileLen(OldFile)
       
        Do Until FileLen(NewFile) = FileLen(OldFile)
            FileCopy txtCopy.Text, txtTo.Text & Filnamn
            MsgBox "Gamla filen: " & FileLen(OldFile)
            ProgressBar1.Value = FileLen(NewFile)
            MsgBox "Nya filen: " & FileLen(NewFile)
        Loop

Det som sker, med denna kod, är att först innan man klickar på progressbaren är progressbaren tom (value = 0), sen när man klickat och filen är kopierad står progressbar.value på det den skall (filelen(newfile)). Men jag förstår inte varför den inte uppdaterar progressbaren hela tiden, så att man ser hela tiden hur långt den kopierat. Någon som vet?

Medlem sedan aug. 20021 752 inlägg
#2

När du kör denna kod,

FileCopy txtCopy.Text, txtTo.Text & Filnamn

så stannar programmet där tills dess att kopieringen av filen är klar. Samma sak gäller alla (nästan) funktions anropp i VB (och andra språk).

/Viktor

Medlem sedan juni 20034 013 inlägg
#3

... och därför gör man så här för att kopiera en fil:

Du öppnar filen du vill kopiera. Du öppnar filen du vill kopiera till. Du läser lite grann från filen du vill kopiera. Du skriver det till filen du ska kopiera till. Du uppdaterar progressbaren. Du läser lite till från filen du vill kopiera. Osv...

Medlem sedan aug. 2002136 inlägg
#4

Tack

254 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)