Wenn du Daten aus Stream A nach Stream B kopieren möchtest, dann kannst du einfach die Methode
CopyFrom verwenden.
Delphi-Quellcode:
fs_file:=Tfilestream.create('D:\a.mp3',fmOpenRead or fmShareDenyWrite);
fs_file2:=TFilestream.Create('X:\a.mp3', fmCreate or fmShareDenyWrite);
fs_file2.CopyFrom(fs_file, 500); // 500 Bytes kopieren
Wenn du die Daten modifizieren möchtest brauchst du einen Puffer.
Ich würde dir hier einen normalen (
Ansi-)
string empfehlen.
Delphi-Quellcode:
var
buffer:string;
...
fs_file:=Tfilestream.create('D:\a.mp3',fmOpenRead or fmShareDenyWrite);
fs_file2:=TFilestream.Create('X:\a.mp3', fmCreate or fmShareDenyWrite);
SetLength(buffer, 4096); // Speicher reservieren
while irgendwas do
begin
fs_file.ReadBuffer(buffer[1], 256); // 256 Bytes lesen
buffer[20] := chr($a0); // ein Byte ändern
fs_file2.WriteBuffer(buffer[1], 256); // 256 Bytes schreiben
end;
// TOLL ! "buffer" braucht nicht freigegeben zu werden; das macht Delphi automatisch