Hallo Matze!

Zitat von
Matze:
Ich mache das leider mittels
file of byte, da ich ja den Fortschritt anzeigen lasse. Mit CopyFile geht es schnell, aber halt völlig ohne Fortschritt und das finde ich nicht gut.

Hupps - meine Aussage sollte als Beispiel dienen. Konnte ja nicht ahnen, daß Du das tatsächlich so realisierts.
Vorschlag: Nehme Streams und arbeite diese in Blöcken ab.
Das mit dem Byte-File hatte ich auch mal versucht - deshalb kenne ich die Problematik. Bei mir war es allerdings ein Vergleichsprogramm. Hast Du schon mal ne volle CD-R byteweise mit den Originaldaten verglichen? Das dauert Stunden. Wie soll das denn erst bei DVDs werden
Einfach einen String mit Setlength auf eine feste Blockgröße setzen, ab Stringvar[1] den Puffer füllen. Die Leseroutine liest ein, wieviele Zeichen tatsächlich gelesen wurden. Diese Anzahl dann rausschreiben und gut ist. Als Blockgröße bitte eine "glatte Binärzahl" verwenden, also z.B. 1024 oder 4096. Die Fortschrittsanzeige kann dann ja immer noch laufen.
Nebenbei: Keine Angst vor Nullbytes! Delphi kennt die Länge eines Strings und bearbeitet das richtig. Lediglich bei Übergabe an
API-Funktionen (MessageBox etc.) wird am Nullbyte abgebrochen.
Delphi-Quellcode:
s1:='Test'#0#0#0'daten';
s2:='Test';
wäre nach Windows gleich (String hört mit #0 auf), nach Delphi sind die ungleich (jedenfalls bei D5Std).
Gruß
Dietmar Brüggendiek