![]() |
AW: GetLocaleInfo() Aufruf, ist es so richtig?
Da mich die Exit-Anweisungen in dem Code gestört haben, musste ich einfach den Source umschreiben. Jedes der Exits hätten einfach in ein else gepasst.
Dabei ist mir dann aufgefallen, dass der Source insgesamt noch einfacher geschrieben werden kann, wenn man den Default-Wert als erstes setzt und nur noch die die Sachen stehen lässt, die diesen verändern würden. Das SetLasteError habe ich auch weg gelassen, da ich die Notwendigkeit an der Stelle nicht erkennen kann. Dabei ist dann dieses bisschen Source übrig geblieben:
Delphi-Quellcode:
Der Source kann nach kürzer werden, wenn man die nicht notwendigen "begin" und "end" bei zwei der if-Abfragen weglässt.
function ThousandSeparator : String;
const Default = ','; // Bei Fehler ein Default Wert nutzen um Meldungen zu überspringen var Buffer: PChar; BufferLen: Integer; begin Result := Default; BufferLen := GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_STHOUSAND, nil, 0); if (BufferLen > 0) then begin Buffer := StrAlloc(BufferLen); if Assigned(Buffer) then begin try if (GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_STHOUSAND, Buffer, BufferLen) = BufferLen) then begin Result := StrPas(Buffer); end; finally StrDispose(Buffer); end; end; end; end; Zu SetLastError und RaiseLastOSError: Da hier ein Default-Wert gesetzt wird, sind diese beiden Anweisungen nicht erforderlich. Gäbe es keinen Default-Wert, könnte das Ergebnis undefiniert sein. Dann wären die Anweisungen möglicherweise sinnvoll. |
AW: GetLocaleInfo() Aufruf, ist es so richtig?
Danke für's Upgrade!
|
AW: GetLocaleInfo() Aufruf, ist es so richtig?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20: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