Regioneinstellungen (Dezimaltrennzeichen) abfragen und ggf. für die Programmlaufzeit ändern (GELÖST!)
-
@Karl-J sagte in Regioneinstellungen (Dezimaltrennzeichen) abfragen und ggf. für die Programmlaufzeit ändern:
FormatSettings.DecimalSeparator = '.';
Hallo Karl,
leider die gleiche Fehlermeldung baim Compilieren: "expected unqualified-id"
Merkwürdiger Fehler... finde keinen Ansatzpunkt.
VG, Matten
-
Relligionseinstellungen sind zutiefst subjektiv.
( = du bitte zeigen eine nachvollziehbare komplette Beißspiel )
-
@MartiMc1 sagte in Regioneinstellungen (Dezimaltrennzeichen) abfragen und ggf. für die Programmlaufzeit ändern:
Was mache ich falsch?
Du benutzt das RAD Studio von Embarcadero. Idera. Wem auch immer der Laden gerade gehört.
Beim mir (RAD Studio 10.1) funktioniert das hier tadellos:
#pragma hdrstop #pragma argsused #include <System.hpp> #include <System.SysUtils.hpp> int main() { FormatSettings.DecimalSeparator = L'@'; String s = FloatToStr( 123.456 ); // ist "123@456" }
Bei der Zeilefmt = TFormatSettings::Create(GetThreadLocale());
bin ich mir auch nicht sicher, ob du da nicht einen Zeiger zurückbekommst. Dann funktioniertfmt.DecimalSeparator
natürlich nicht.#pragma hdrstop #pragma argsused #include <Windows.h> #include <System.hpp> #include <System.SysUtils.hpp> int main() { TFormatSettings fmt = TFormatSettings::Create( ::GetThreadLocale() ); fmt.DecimalSeparator = L'@'; }
funktioniert auch. Hast du die richtigen Header inkludiert?
-
Hallo @DocShoe
Vielen Dank.
Beide Varianten funktionieren merkwürdigerweise in einem "leeren" neuen Projekt tadellos...
Sehr merkwürdig, dass sie in meinem Programm nicht laufen wollen.
Immer dieses "expected unqualified-id".
Die Compiler-Settings habe ich schon abgeglichen und die eingebundenen Header auch...
-
Ist
DecimalSeparator
bei deinem Projekt ein Makro (per#define
gesetzt)?
-
@Th69
nee, zumindest habe ich keine solche Definition gesetzt. Vielleicht innerhalb einer Header-Datei?
-
Dann teste doch mal mit
#undef DecimalSeparator DecimalSeparator = '.';
-
Dieser Beitrag wurde gelöscht!
-
@Th69 sagte in Regioneinstellungen (Dezimaltrennzeichen) abfragen und ggf. für die Programmlaufzeit ändern:
Dann teste doch mal mit
#undef DecimalSeparator DecimalSeparator = '.';
Genau das hat's gebracht!!
Vielen Dank für den Tip, nun läuft es wie gewünscht!
VG, Matten
-
Du solltest aber auch mal nach der Ursache schauen (evtl. ein schlecht gewählter Include-Guard o.ä?).