AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Datei mit Fortschrittsanzeige Kopieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datei mit Fortschrittsanzeige Kopieren

Ein Thema von MiniKeks · begonnen am 20. Dez 2005 · letzter Beitrag vom 5. Mär 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von MiniKeks
MiniKeks

Registriert seit: 19. Jul 2005
103 Beiträge
 
Delphi 7 Professional
 
#1

Datei mit Fortschrittsanzeige Kopieren

  Alt 20. Dez 2005, 18:18
Wie kann ich das realisieren?

Bitte helft mir ist wirklich dringend!!

mfg, und frohe Weihnachtszeit wünscht euch,
miniKeks
Menschen können sich ändern. Auch ich.
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Datei mit Fortschrittsanzeige Kopieren

  Alt 20. Dez 2005, 18:24
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;
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Datei mit Fortschrittsanzeige Kopieren

  Alt 20. Dez 2005, 18:27
Der Windows-Weg (MIT Fortschrittsanzeige): Hier im Forum suchenSHFileOperation
Julian J. Pracht
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Datei mit Fortschrittsanzeige Kopieren

  Alt 20. Dez 2005, 18:33


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).
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von dahead
dahead

Registriert seit: 16. Mai 2005
620 Beiträge
 
#5

Re: Datei mit Fortschrittsanzeige Kopieren

  Alt 20. Dez 2005, 18:59
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".
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Datei mit Fortschrittsanzeige Kopieren

  Alt 20. Dez 2005, 19:05
http://www.michael-puff.de/Developer...opyFileEx.html
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Datei mit Fortschrittsanzeige Kopieren

  Alt 20. Dez 2005, 19:08
Zitat von dahead:
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
Julian J. Pracht
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Datei mit Fortschrittsanzeige Kopieren

  Alt 20. Dez 2005, 22:47
Nicht vergessen die Attribute einer Datei und das Änderungsdatum der kopierten Datei mitzugeben, dass bleibt ja unverändert...

Gruß
Pfoto
Jürgen Höfs
  Mit Zitat antworten Zitat
xarneax

Registriert seit: 16. Dez 2006
7 Beiträge
 
#9

Re: Datei mit Fortschrittsanzeige Kopieren

  Alt 16. Dez 2006, 16:14
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?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Datei mit Fortschrittsanzeige Kopieren

  Alt 16. Dez 2006, 16:36
Wenn du uns jetzt noch verräts von welchen Quellcode du redest und wie du ihn umgesetzt hast, kann man dir auch helfen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:39 Uhr.
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