Achso, dachte du meinst ab Delphi 2006.
Vom Code her könnte es sogar von Delphi 7 bis 2007 laufen (so vom Ansehn her)
Du könntest ja einen Hinweis einfügen, welcher sich notfalls meldet.
Delphi-Quellcode:
{$IF CompilerVersion >= 20.0}
{$MESSAGE Fatal 'this is not compatible with unicode (Delphi 2009+)'}
{$IFEND}
Aber am Einfachsten du verwendest erstmal AnsiString und PAnsiChar, dann wäre es zumindestens in D2009+ lauffähig und dann halt nur Sowas oder garkein Hinweis.
Delphi-Quellcode:
{$IF CompilerVersion >= 20.0}
{$MESSAGE Hint 'this are only an ANSI-Version'}
{$IFEND}
OK, dann kann ich ja weiterhin für meinen TTextStream Werbung machen, welcher ja grundsätzlich nur für die Unicodedelphis ausgelegt ist.
[add]
CreateFile liefert keine 0 bei Fehlern.
Und da die Datei doch eh sequentiell gelesen wird, könnte man dieses Windows mitteilen, damit es vielleicht noch'n bissl die Cache optimieren kann.
Und die leere
Exception ist auch nett.
Delphi-Quellcode:
FFile := CreateFile(PChar(AFileName), GENERIC_READ, FILE_SHARE_READ, nil,
OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, 0);
if FFile = INVALID_HANDLE_VALUE then
RaiseLastOSError;
FSize := FileSeek(FFile, Int64(0), Ord(soEnd));
FMapping := CreateFileMapping(FFile, nil, PAGE_READONLY, 0, 0, nil);