Verschiebt oder kopiert man im Windows-Explorer mehrere Dateien, zeigt ein Dialog den Fortschritt und die verbleibende Zeit. Mit dem Tip Kopieren, Verschieben, Löschen wie im Explorer kann man in VB diese Dialoge nutzen. Was aber, wenn man aus bestimmten Gründen diese Dialoge nicht nutzen kann (oder möchte), aber trotzdem die verbleibende Zeit benötigt? Hier hilft der von vielen geliebte Dreisatz. Benötigt wird:
Die im folgenden vogestellte Funktion TimeRemain benötigt:
Daraus wird zunächst die Zeit, die für eine Dateioperation benötigt wurde ermittelt. Dieser Wert wird dann auf die noch übrig gebliebenen Dateien hochgerechnet. In der Praxis sieht das so aus: ' Für das Beispiel sei angenommen, dass Dateien kopiert werden sollen ' und die zu kopierenden Dateien im Array arrFiles() liegen. Private Sub cmdCopy_Click() Dim Start As Single Dim Dateien As Long Dim i As Long ' Startzeit festlegen Start = Timer ' Anzahl der zu kopierenden Dateien bestimmen ' (da das Array bei 0 (Null) beginnt, ist die Anzahl der Dateien der ' obere Index des Arrays + 1) Dateien = UBound(arrFiles) + 1 For i = LBound(arrFiles) To UBound(arrFiles) ' Datei kopieren FileCopy "C:\temp\" & arrFiles(i), "C:\Temp1\" & arrFiles(i) ' Restzeit anzeigen ' (da das Array bei 0 (Null) beginnt, ist die Anzahl der bereits ' kopierten Dateien i + 1) Label1.Caption = "Verbleibende Zeit: " & TimeRemain(Start, Dateien, i + 1) & " Sekunden" Next i End Sub Private Function TimeRemain(Start As Single, Dateien As Long, _ Kopiert As Long) As Long Dim Vergangen As Single Dim Rest As Long Dim Tmp As Double ' Start: Zeit, wann mit der Operation begonnen wurde ' Dateien: Anzahl aller Dateien ' Kopiert: Anzahl der bereits kopierten Dateien ' Vergangen: Zeit, die seit dem Start der Operation verstrichen ist ' Rest: Zeit, die für die restlichen Dateien benötigt wird ' Tmp: Zeit, die für eine Datei benötigt wurde (Durchschnitt) ' Zeit, die seit dem Start der Operation verstrichen ist Vergangen = Timer - Start ' Zeit, die für eine Datei benötigt wird (Durchschnitt) Tmp = Vergangen / Kopiert ' Zeit, die für die restlichen Dateien benötigt wird ' restliche Dateien = Dateien - Kopiert Rest = (Dateien - Kopiert) * Tmp TimeRemain = Rest End Function Dieser Tipp wurde bereits 16.001 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevZIP40 Pro DLL Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Tipp des Monats Mai 2024 Hermann Röttger Wochentage eines Datumsbereichs ermitteln Wochentage eines Datumsbereichs ermitteln, optional mit Feiertagsberechnung TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |