Hallo,
ich glaube ich steht auf dem Schlauch und hoffe, ihr könnt mir helfen.
Folgende Problemstellung: Ich möchte eien Grafik einlesen und deren Inhalt mit zusätzlichen Informationen versehen und in einer Binärdatei speichern.
Folgender Ansatz:
Delphi-Quellcode:
var
FileStream : TFileStream;
PicStream, MyStream: TStream;
Len : integer;
begin
// :
// Größe des Streams
Len := PicStream.Size;
MyStream.Write(Len, SizeOf(Len));
MyStream.Write(PicStream, Len);
// :
// und dann als Datei speichern
FileStream := TFileStream.Create('D:\Temp\test.dat', fmCreate);
MyStream.Position := 0;
try
FileStream.CopyFrom(MyStream, MyStream.Size);
finally
FileStream.Free;
end;
end;
Beim Auslesen gehe ich so vor:
Delphi-Quellcode:
var
FileStream : TFileStream;
PicStream : TMemoryStream;
sizeInt : integer;
TempBuff : String;
begin
// :
sizeInt := 0;
FileStream.Read(sizeInt, SizeOf(integer));
If sizeInt > 0 then
begin
SetLength(TempBuff, sizeInt);
FileStream.Read(PChar(TempBuff)^, sizeInt);
PicStream.Clear;
PicStream.Write(PChar(TempBuff)^, Length(TempBuff));
PicStream.Position := 0;
end;
// :
end;
Aber irgendwie stimmen die Daten des Streams nicht. An was kann es hängen? Ist schon das Speichern falsch?
Es wäre schön, wenn mich jemand auf die richtige Fährte führen würde
Besten Dank.