Einzelnen Beitrag anzeigen

Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
794 Beiträge
 
Delphi 2009 Professional
 
#12

AW: inifile ReadFloat deutsch/english formatsettings

  Alt 14. Jul 2021, 21:46
Ich habe meine Anwendung so umgestellt, dass der Speicher als Int64 interpretiert wird, wenn ich ein TDateTime speichern oder lesen möchte.

Delphi-Quellcode:
type TJanniINIFile = class helper for TIniFile
  public
    constructor CreateForceFile(const FileName: string); // Erstellt gegebenenfalls den Ordner
    procedure WriteDouble(const Section, Ident: string; const Value: Double); // Mein Versuch, TDateTime regionsunabhängig zu schreiben
    function ReadDouble(const Section, Ident: string; const Default: Double): Double;
end;

{ TJanniINIFile }

constructor TJanniINIFile.CreateForceFile(const FileName: string);
begin
  ForceDirectories(ExtractFilePath(Filename));
  Create(FileName);
end;

function TJanniINIFile.ReadDouble(const Section, Ident: string;
  const Default: Double): Double;
var
  Pointer: PDouble;
  Pointer2: PInt64;
  Int: Int64;
begin
  Pointer2 := @Default;
  Int := StrToInt64Def(ReadString(Section, Ident, ''), Pointer2^);
  Pointer := @Int;
  Result := Pointer^;
end;

procedure TJanniINIFile.WriteDouble(const Section, Ident: string;
  const Value: Double);
var
  Pointer: PInt64;
begin
  Pointer := @Value;
  WriteString(Section, Ident, IntToStr(Pointer^));
end;
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat