In Delphi/Pascal kann man diese Open/Create-Modi garnicht Kombinieren,
das geht nur mit einem optionalen Share-Mode.
Es steht so aber auch ganz genau in der Hilfe beschrieben.
Zitat:
The open mode must be one of the following values:
Ja, in der
WinAPI gibt es ein OpenAlways (Öffnen oder Erstellen wenn noch nicht da), aber nicht in Delphi.
Entweder du prüfst mit FileExists und nimmst dann fmCreate
oder fmOpenWrite
oder du nimmst THandleStream mit CreateFile und kannst dort die passende dwCreationDisposition OPEN_ALWAYS verwenden.
[add]
https://quality.embarcadero.com/brow...OPEN_ALWAYS%22
[add]
Delphi-Quellcode:
const
OpenMode: array[Boolean] of Word = (fmCreate, fmOpenWrite);
var
fstream: TFilestream;
fn: string;
x: boolean;
begin
fn := TPath.GetSharedDownloadsPath + TPath.DirectorySeparatorChar + 'Test.txt';
x := fileexists(fn);
fstream := TFilestream.Create(fn, OpenMode[x]);
// oder
fstream := TFilestream.Create(fn, IfThen(x, fmOpenWrite, fmCreate));