Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi GetDateFormat problem (https://www.delphipraxis.net/38818-getdateformat-problem.html)

day 24. Jan 2005 16:20


GetDateFormat problem
 
Hallo

GetLastError gibt mir 183 ( Cannot create a file when that file already exists. ERROR_ALREADY_EXISTS ) zurück. Woran liegt das?

Delphi-Quellcode:
    lDate := ValueStr;
var lDate : String;
    lTokens: TStrings;
    lSystemTime : TSystemTime;
    lBuffer : array[0..64] of Char;
    lErrorCode : Integer;
Begin
 
    lTokens := TStringList.Create( );
    ExtractStrings( ['.'], [], PChar( ValueStr ), lTokens );
    lSystemTime.wDay  := StrToInt(lTokens[0]);
    lSystemTime.wMonth := StrToInt(lTokens[1]);
    lSystemTime.wYear := StrToInt(lTokens[2]);

    GetDateFormat( LOCALE_USER_DEFAULT, DATE_SHORTDATE, @lSystemTime, nil, lBuffer, sizeof( lBuffer ) );

    lErrorCode := GetLastError();
    If( lErrorCode = 0 ) Then lDate := lBuffer;

Luckie 24. Jan 2005 16:26

Re: GetDateFormat problem
 
Stehen denn in wDay, wMonth, wYear gültige Werte?

day 24. Jan 2005 16:34

Re: GetDateFormat problem
 
ja, wDay = 25, wMonth=8 und wYear= 2004 der rest ist 0.

So wie es aussieht wird das Datum schon konvertiert. Es befindet sich im lBuffer trotz fehler.

Luckie 24. Jan 2005 16:45

Re: GetDateFormat problem
 
Das geht bei mir:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  lSystemTime : TSystemTime;
  lBuffer     : array[0..64] of Char;
  lErrorCode  : Integer;
begin
  FillChar(lSystemTime, sizeof(TSYSTEMTIME), #0);
  lSystemTime.wDay := 25;
  lSystemTime.wMonth := 8;
  lSystemTime.wYear := 2004;

  if GetDateFormat(LOCALE_USER_DEFAULT, DATE_SHORTDATE, @lSystemTime, nil,
    lBuffer, sizeof(lBuffer)) <> 0 then
    ShowMessage(string(lBuffer))
  else
    ShowMessage(SysErrorMessage(GetLastError));
end;
Bei einer ungültigen Angabe wird auch "Falscher Parameter" ausgegeben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz