Thema: Delphi AV bei MemoryStream

Einzelnen Beitrag anzeigen

Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#1

AV bei MemoryStream

  Alt 3. Jul 2006, 21:16
Morgen.

Ich habe hier gerade folgendes nerviges Problem:

Ich lese aus einem FileStream und schreibe die Daten in einen MemoryStream:

Delphi-Quellcode:
procedure TTiles.LoadFromFile(FileName: String);
var fs: TFileStream;
    memstr: TMemoryStream;
    size: Cardinal;
    buf: array of Byte;
    tgaimg: TTarga;
begin
  imglst.Items.Clear;
  fs:=TFileStream.Create(FileName, fmOpenRead);
  memstr:=TMemoryStream.Create;
  tgaimg:=TTarga.Create;
  try
    fs.Read(FTileWidth, sizeof(Cardinal));
    fs.Read(FTileHeight, sizeof(Cardinal));
    while fs.Position<fs.Size do
    begin
      fs.Read(size, sizeof(Cardinal));
      setlength(buf, size);
      fs.Read(buf, size);
      memstr.Write(buf, size);
      tgaimg.LoadFromStream(memstr);
      memstr.Clear;
      tgaimg.SaveToStream(memstr);
      with imglst.Items.Items[imglst.Items.Add.Index].Picture do
      begin
      Bitmap:=TBitmap.Create;
      Bitmap.LoadFromStream(memstr);
      end;
      memstr.Clear;
    end;
    setlength(buf, 0);
  finally
    fs.free;
    memstr.free;
    tgaimg.free;
  end;
end;
Bei memstr.write (Hier Zeile 19) erhalte ich eine AV. Woran könnte das liegen?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat