Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Hilfe bei einer Progressbar

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
hitori04



Anmeldungsdatum: 21.04.2011
Beiträge: 53

BeitragVerfasst am: 21.04.2011, 18:10    Titel: Hilfe bei einer Progressbar Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 21.04.2011, 18:31    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
hitori04



Anmeldungsdatum: 21.04.2011
Beiträge: 53

BeitragVerfasst am: 21.04.2011, 18:38    Titel: Antworten mit Zitat

oh ja ich verwende Freebasic verlegen sorry für die umstände

und danke MOD für die schnelle hilfe lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 21.04.2011, 19:35    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz