Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datei mit Fortschrittsanzeige Kopieren (https://www.delphipraxis.net/59326-datei-mit-fortschrittsanzeige-kopieren.html)

MiniKeks 20. Dez 2005 18:18


Datei mit Fortschrittsanzeige Kopieren
 
Wie kann ich das realisieren?

Bitte helft mir ist wirklich dringend!!

mfg, und frohe Weihnachtszeit wünscht euch,
miniKeks :wink:

ichbins 20. Dez 2005 18:24

Re: Datei mit Fortschrittsanzeige Kopieren
 
Datei kopieren geht so:
Delphi-Quellcode:
var
  f,t:file of byte;
  buf:array[1..4096] of byte;
  read:integer;
begin
  assignfile(f,from);                   //Datei from zuweisen
  assignfile(t,to);                     //Datei to zuweisen
  reset(f);                             //Datei from öffnen
  rewrite(t);                           //Datei to erstellen/überschreiben
  while not eof(f) do begin             //solange die Datei from nicht am Ende ist
    blockread(f,buf,length(buf),read);  //lese aus Datei from in Variable buffer, und zwar länge(buffer) Bytes. Anzahl der tatsächlich gelesenen Bytes in read.
    blockwrite(t,buf,read);             //Schreibe in Datei to aus Buffer und zwar [anzahl der gelesenen bytes] bytes.
  end;
  closefile(f);                         //Schliesse Dateien
  closefile(t);
end;
jetzt kannst du ja mit filesize(f) die soll-Größe von f ermitteln.
folglich kannst du mit [filesize(t) {bereits geschriebene Bytes } / filesize(f) {Anzahl zu schreibender Dateien}] den Prozentsatz berechnen.

Mit Fortschrittsaktualisierung sieht die Funktion also so aus:

Delphi-Quellcode:
var
  f,t:file of byte;
  buf:array[1..4096] of byte;
  read:integer;
begin
  assignfile(f,from);                  
  assignfile(t,to);                    
  reset(f);                          
  rewrite(t);                          
  while not eof(f) do begin            
    blockread(f,buf,length(buf),read);
    blockwrite(t,buf,read);        
    progressbar1.progress:=round(100*filesize(t)/filesize(f));
    application.processmessages;            //Bildschirm aktualisieren bzw. Buttonklicks ausführen etc.  
  end;
  closefile(f);                        
  closefile(t);
end;

Ultimator 20. Dez 2005 18:27

Re: Datei mit Fortschrittsanzeige Kopieren
 
Der Windows-Weg (MIT Fortschrittsanzeige): Hier im Forum suchenSHFileOperation ;)

ichbins 20. Dez 2005 18:33

Re: Datei mit Fortschrittsanzeige Kopieren
 
:wall:

Aber wenn ich windows das ganze Zeugs erledigen lasse habe ich nicht so viel Kontrolle darüber (was klickt der User jetzt an, ...) Außerdem kann ich sowas in einem Setup oder so auch nicht brauchen.

Bei SHFileOperation springt nämlich diese Windows-Fortschrittsanzeige auf (wie beim Explorer).

dahead 20. Dez 2005 18:59

Re: Datei mit Fortschrittsanzeige Kopieren
 
Zitat:

Zitat von ichbins
Bei SHFileOperation springt nämlich diese Windows-Fortschrittsanzeige auf (wie beim Explorer).

dafür gibts u. a. das Flag "FOF_SILENT" und "FOF_NOCONFIRMATION".

Luckie 20. Dez 2005 19:05

Re: Datei mit Fortschrittsanzeige Kopieren
 
http://www.michael-puff.de/Developer...opyFileEx.html

Ultimator 20. Dez 2005 19:08

Re: Datei mit Fortschrittsanzeige Kopieren
 
Zitat:

Zitat von dahead
Zitat:

Zitat von ichbins
Bei SHFileOperation springt nämlich diese Windows-Fortschrittsanzeige auf (wie beim Explorer).

dafür gibts u. a. das Flag "FOF_SILENT" und "FOF_NOCONFIRMATION".

Dann is aber von seiner gewünschten Fortschrittsanzeige nimmer viel zu sehen ;)

Pfoto 20. Dez 2005 22:47

Re: Datei mit Fortschrittsanzeige Kopieren
 
Nicht vergessen die Attribute einer Datei und das Änderungsdatum der kopierten Datei mitzugeben, dass bleibt ja unverändert...

Gruß
Pfoto

xarneax 16. Dez 2006 16:14

Re: Datei mit Fortschrittsanzeige Kopieren
 
Hallo, ich habe mal eine kurze Frage zu dem Script. Und zwar muss ich eine recht große zip Datei kopieren, nur leider funktioniert der Fortschrittsbalken nicht.

Die Datei beträgt 56.579 KB. Folgender Fehler tritt auf: Kopiervorgang startet, 0% - 36%, dann -35% - 0%, dann 1% - 26%. Warum?

Luckie 16. Dez 2006 16:36

Re: Datei mit Fortschrittsanzeige Kopieren
 
Wenn du uns jetzt noch verräts von welchen Quellcode du redest und wie du ihn umgesetzt hast, kann man dir auch helfen. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz