Forum Delphi.cz

Delphi => Obecné => Téma založeno: szs 18-06-2019, 11:49:09

Název: FileStream.seek access violation
Přispěvatel: szs 18-06-2019, 11:49:09
Ahoj,

 mám velkou prosbu. Už několik dní se trápím s tím proč, kód, který by měl fungovat, nefunguje a nikde to nemůžu vygooglit. Háže access violation at.. na řádku FSourceFile.Seek(0, soBeginning).
 Zkoušel jsem i Position:=0, soFromBeginning nebo fmShareDenyNone.

Zkoušel jsem v Delphi 2010 a XE2.




procedure TForm1.Button2Click(Sender: TObject);
var  FSourceFile: TFileStream;
       PreambleBuf: TBytes;
begin

  FSourceFile := TFileStream.Create('c:\Users\ja\Documents\test.txt', fmOpenReadWrite);

  SetLength(PreambleBuf, 100);
  FSourceFile.Read(PreambleBuf, Length(PreambleBuf));
  FSourceFile.Seek(0, soBeginning);  // potřebuji vrátit na začátek pro následné načítání a to nejde
  ...

end;



Díky moc za jakoukoliv pomoc!
Název: Re:FileStream.seek access violation
Přispěvatel: vandrovnik 18-06-2019, 13:16:16
Místo
Kód: Delphi [Vybrat]
  1.  FSourceFile.Read(PreambleBuf, Length(PreambleBuf));
bych zkusil
Kód: Delphi [Vybrat]
  1.  FSourceFile.Read(PreambleBuf[0], Length(PreambleBuf));

Tak, jak to máš, si nejspíš přepíšeš data v zásobníku.