vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Suche Visual-Basic Code
Re: Dateifortschritt 
Autor: ModeratorDieter (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
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Dateifortschritt101thodem07.06.02 15:27
Re: Dateifortschritt441ModeratorDieter07.06.02 15:44
Re: Dateifortschritt74thodem10.06.02 11:45

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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