| |

Suche Visual-Basic CodeRe: Dateifortschritt | |  | Autor: Dieter (Moderator) | Datum: 07.06.02 15:44 |
| Hallo Thomas,
zwei Möglichkeiten:
a) Verwenden der SHFileOperation-API
Kopieren, Verschieben, Löschen wie im Explorer
b) Datei binär öffnen und schrittweise selbst kopieren
Alles was Du dazu brauchst, ist ein Picture-Control, welches den Kopier-Fortschritt anzeigt:
Beispiel:<code><font color=#000099>Option</font> <font color=#000099>Explicit</font>
<font color=green>' Fortschritsanzeige</font>
<font color=#000099>Private</font> <font color=#000099>Sub</font> ShowProgress( _
picProgress <font color=#000099>As</font> PictureBox, _
<font color=#000099>ByVal</font> Value <font color=#000099>As</font> <font _
color=#000099>Long</font>, _
<font color=#000099>ByVal</font> Min <font color=#000099>As</font> <font _
color=#000099>Long</font>, _
<font color=#000099>ByVal</font> Max <font color=#000099>As</font> <font _
color=#000099>Long</font>, _
Optional <font color=#000099>ByVal</font> bShowProzent <font _
color=#000099>As</font> <font color=#000099>Boolean</font> = <font _
color=#000099>True</font>)
<font color=#000099>Dim</font> pWidth <font color=#000099>As</font> <font _
color=#000099>Long</font>
<font color=#000099>Dim</font> intProz <font color=#000099>As</font> <font _
color=#000099>Integer</font>
<font color=#000099>Dim</font> strProz <font color=#000099>As</font> <font _
color=#000099>String</font>
<font color=green>' Farben</font>
<font color=#000099>Const</font> progBackColor = &HC00000
<font color=#000099>Const</font> progForeColor = vbBlack
<font color=#000099>Const</font> progForeColorHighlight = vbWhite
<font color=green>' Plausibilitätsprüfungen</font>
<font color=#000099>If</font> Value < Min <font color=#000099>Then</font> _
Value = Min
<font color=#000099>If</font> Value > Max <font color=#000099>Then</font> _
Value = Max
<font color=green>' Prozentwert ausrechnen</font>
<font color=#000099>If</font> Max > 0 <font color=#000099>Then</font>
intProz = Int(Value / Max * 100 + 0.5)
<font color=#000099>Else</font>
intProz = 100
<font color=#000099>End</font> <font color=#000099>If</font>
<font color=#000099>With</font> picProgress
<font color=green>' Prüfen, ob AutoReadraw=True</font>
<font color=#000099>If</font> .AutoRedraw = <font _
color=#000099>False</font> <font color=#000099>Then</font> .AutoRedraw = _
<font color=#000099>True</font>
<font color=green>' Inhalt löschen</font>
picProgress.Cls
<font color=#000099>If</font> Value > 0 <font color=#000099>Then</font>
<font color=green>' Balkenbreite</font>
pWidth = .ScaleWidth / 100 * intProz
<font color=green>' Balken anzeigen</font>
picProgress.<font color=#000099>Line</font> (0, 0)-(pWidth, _
.ScaleHeight), _
progBackColor, <font color=#000099>BF</font>
<font color=green>' Prozentanzeige</font>
<font color=#000099>If</font> bShowProzent <font color=#000099>Then</font>
strProz = <font color=#000099>CStr</font>(intProz) & " %"
.CurrentX = (.ScaleWidth - .TextWidth(strProz)) / 2
.CurrentY = (.ScaleHeight - .TextHeight(strProz)) / 2
<font color=green>' Vordergrundfarbe</font>
<font color=#000099>If</font> pWidth >= .CurrentX <font _
color=#000099>Then</font>
.ForeColor = progForeColorHighlight
<font color=#000099>Else</font>
.ForeColor = progForeColor
<font color=#000099>End</font> <font color=#000099>If</font>
picProgress.<font color=#000099>Print</font> strProz
<font color=#000099>End</font> <font color=#000099>If</font>
<font color=#000099>End</font> <font color=#000099>If</font>
<font color=#000099>End</font> <font color=#000099>With</font>
<font color=#000099>End</font> <font color=#000099>Sub</font>
<font color=#000099>Private</font> <font color=#000099>Sub</font> _
Command1_Click()
<font color=#000099>Dim</font> sSourceFile <font color=#000099>As</font> _
<font color=#000099>String</font>
<font color=#000099>Dim</font> sDestFile <font color=#000099>As</font> <font _
color=#000099>String</font>
sSourceFile = "..."
sDestFile = "..."
VB_FileCopy sSourceFile, sDestFile, picProgress
<font color=#000099>End</font> <font color=#000099>Sub</font>
<font color=#000099>Public</font> <font color=#000099>Sub</font> VB_FileCopy( _
<font color=#000099>ByVal</font> sSource <font color=#000099>As</font> <font _
color=#000099>String</font>, _
<font color=#000099>ByVal</font> sDest <font color=#000099>As</font> <font _
color=#000099>String</font>, _
Optional cProgress <font color=#000099>As</font> <font _
color=#000099>Control</font> = <font color=#000099>Nothing</font>)
<font color=#000099>Dim</font> F <font color=#000099>As</font> <font _
color=#000099>Integer</font>
<font color=#000099>Dim</font> N <font color=#000099>As</font> <font _
color=#000099>Integer</font>
<font color=#000099>Dim</font> lSize <font color=#000099>As</font> <font _
color=#000099>Long</font>
<font color=#000099>Dim</font> lCurPos <font color=#000099>As</font> <font _
color=#000099>Long</font>
<font color=#000099>Dim</font> lBytes <font color=#000099>As</font> <font _
color=#000099>Long</font>
<font color=#000099>Dim</font> sContent <font color=#000099>As</font> <font _
color=#000099>String</font>
<font color=green>' Original-Datei öffnen</font>
F = FreeFile
<font color=#000099>Open</font> sSource <font color=#000099>For</font> <font _
color=#000099>Binary</font> <font color=#000099>As</font> #F
<font color=green>' Ziel-Datei öffnen (zuvor löschen)</font>
<font color=#000099>If</font> Dir$(sDest) <> "" <font _
color=#000099>Then</font> Kill sDest
N = FreeFile
<font color=#000099>Open</font> sDest <font color=#000099>For</font> <font _
color=#000099>Binary</font> <font color=#000099>As</font> #N
<font color=green>' Status 0%</font>
lSize = LOF(F)
lCurPos = 0
<font color=#000099>If</font> <font color=#000099>Not</font> cProgress Is _
<font color=#000099>Nothing</font> <font color=#000099>Then</font>
ShowProgress picProgress, 0, 0, lSize
<font color=#000099>End</font> <font color=#000099>If</font>
<font color=green>' Datei blockweise kopieren</font>
<font color=#000099>Const</font> lBlock <font color=#000099>As</font> <font _
color=#000099>Long</font> = 16384
<font color=#000099>Do</font> <font color=#000099>While</font> lCurPos < lSize
lBytes = lBlock
<font color=#000099>If</font> lCurPos + lBytes > lSize <font _
color=#000099>Then</font> _
lBytes = lSize - lCurPos
<font color=green>' Lesen</font>
sContent = Space$(lBytes)
<font color=#000099>Get</font> #F, , sContent
<font color=green>' Status aktualisiern</font>
lCurPos = lCurPos + lBytes
<font color=#000099>If</font> <font color=#000099>Not</font> cProgress Is _
<font color=#000099>Nothing</font> <font color=#000099>Then</font>
ShowProgress picProgress, lCurPos, 0, lSize
DoEvents
<font color=#000099>End</font> <font color=#000099>If</font>
<font color=green>' Schreiben</font>
<font color=#000099>Put</font> #N, , sContent
<font color=#000099>Loop</font>
<font color=green>' Dateien schließen</font>
<font color=#000099>Close</font> #F: <font color=#000099>Close</font> #N
<font color=#000099>End</font> <font color=#000099>Sub</font></code> Cu
Dieter |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
Neu! sevEingabe 3.0 
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) 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
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
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.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|