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.243 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. |
TOP! Unser Nr. 1 Neu! sevDataGrid 3.0 Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Tipp des Monats Dezemeber 2024 Roland Wutzke MultiSort im ListView-Control Dieses Beispiel zeigt, wie sich verschiedene Sortierfunktionen für ein ListView Control realisieren lassen. Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
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. |