Und fmOpenWrite knallt auch, wenn die Datei vorher noch nicht existiert, denn sie lässt sich bekanntlich nicht so gut öffnen.
Einige FileAPIs bieten auch ein
fmOpenNew an, was TRUNCATE_EXISTING (
CreateFile) entspricht.
Mir war so, als wenn TFileStream auch
SetEndOfFile implementiert, also entsprechend einem
FileTruncate, nur ich fand grade nichts,
aber indirekt geht auch
FS.Size := FS.Position;
, vor dem Schließen der Datei.