Ich kann den Fehler mit folgendem Beispielcode reproduzieren:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
Stream: TFileStream;
begin
Stream := TFileStream.Create('Test.txt', fmOpenRead or fmShareDenyWrite);
try
Stream.Seek(-1, soFromEnd);
ShowMessage(Format('Größe: %d Position: %d', [Stream.Size, Stream.Position]));
finally
Stream.Free;
end;
end;
Wie zu erwarten gibt das Programm eine Position eins vor der Gesamtgröße zurück, was auch völlig normal ist. In VirtualPC mit Win98 springt er jedoch 1 hinter die Datei. Zum Testen einfach die 'Test.txt' mit einer eigenen Datei ersetzen, die mindestens 1 Byte groß ist.
karlkoch