Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
hitori04
Anmeldungsdatum: 21.04.2011 Beiträge: 53
|
Verfasst am: 21.04.2011, 18:10 Titel: Hilfe bei einer Progressbar |
|
|
Ich versuche schon seid einer geraumen Zeit eine Progressbar bzw eine prozent anzeige für den Kopiervorgang von Dateien zu erstellen aber irgendwie komme ich nun nicht darauf wie man den Kopiervorgang mit der prozent anzeige verbindet.
hier die prozentanzeige:
Code: |
For i As Integer = 0 To 100
Locate 1,1
Print i/1; "%";
Sleep 1000
Next
|
und hier der kopiervorgang:
Code: |
shell "copy C:\text.txt D:\text.txt"
|
danke im vorraus für jede hilfe
MFG Hitori04 |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 21.04.2011, 18:31 Titel: |
|
|
Das wird so nicht funktionieren, weil du keine Möglichkeit hast, die Vorgägne der Shell abzufangen. Alternativ musst du die Datei per OPEN-Befehl öffnen, auslesen und in eine neue Datei schreiben.
Da du scheinbar FreeBASIC und nicht QuickBASIC verwendest (erkennbar an der Deklaration von 'i'), hier ein entsprechendes FB-Beispiel:
Code: | Dim As String quelle, ziel
Dim As Integer FF1, FF2
Dim As Integer dateiLaenge
Dim As String paket = Space(6144) 'Paketgröße ist 6KB
Dim As Integer prozent
quelle = "C:/testdatei.txt"
ziel = "D:/testdatei.txt"
FF1 = FreeFile
If Open (quelle For Binary As #FF1) <> 0 Then
Print WStr("Quelldatei konnte nicht geöffnet werden")
EndIf
FF2 = FreeFile
If Open (ziel For Binary As #FF2) <> 0 Then
Print WStr("Zieldatei konnte nicht geöffnet werden")
EndIf
dateiLaenge = Lof(FF1)
For i As Integer = 1 To dateiLaenge Step 6144
If (dateilaenge - i) < 6144 Then
paket = Space(dateilaenge - i + 1) 'Falls keine 6KB vorhanden, dann Rest
EndIf
Get #FF1, i, paket
Put #FF2, i, paket
prozent = i/dateiLaenge*100
Print prozent
Sleep 1, 1
Next
Close #FF1
Close #FF2
Sleep
|
(Könnte ein Moderator das bitte verschieben) |
|
Nach oben |
|
 |
hitori04
Anmeldungsdatum: 21.04.2011 Beiträge: 53
|
Verfasst am: 21.04.2011, 18:38 Titel: |
|
|
oh ja ich verwende Freebasic sorry für die umstände
und danke MOD für die schnelle hilfe  |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 21.04.2011, 19:35 Titel: |
|
|
MOD hat Folgendes geschrieben: | (Könnte ein Moderator das bitte verschieben) |
Bereits erledigt. :-)
Sonst zum Thema selber: Kopiervorgang so programmieren, dass Du anhand der Dateilänge weisst, wieviele Blöcke mit INPUT$/PRINT#(oder meinetwegen auch GET/PUT) zu übertragen sind -> innerhalb dieser Blockkopierschleife auch den Stand nachtragen. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
|