Lokalisierung

Hallo,

in einem Programm stelle ich je nach eingestellter Sprache auch die Ländereinstellungen mit ‚setlocale‘ ein, um z.B. Datum und Zahlen länderspezifisch anzuzeigen. Jetzt möchte ich aber auch Daten speichern und wieder einlesen, aber so, daß ich z.B. mit der Einstellung ‚deutsch‘ abgespeicherte Daten auch mit der Einstellung ‚englisch‘ wieder einlesen kann, das Problem ist aber in diesem Beispiel, daß dann Dezimalzahlen mit Komma abgespeichert werden, beim Einlesen aber Punkte erwartet werden.
Hat zufällig jemand eine Idee wie man das Problem beheben könnte?

Gruß Tobias

Hallo,

wie wärs denn, wenn du einfach alles im englischen Format speicherst und nur beim anzeigen/speichern konvertierst? Ich mach das immer so :wink:

bye,
Christoph

Hallo, das ist ja genau mein Plan, aber wie denn? Im Moment wandle ich vor dem Abspeichern z.B. mit der CString-Methode Format mein double in einen CString um, umgekehrt CString in double mit atof. Wie soll ich denen jetzt beibringen die Formatierung bei der Anzeige anders zu machen als beim speichern in eine Datei. Jedesmal vorher mit setlocale die Ländereinstellungen ändern geht auch nicht, da diese Einstellung für den gesamten Prozeß gilt und die Anwendung multithreaded ist.
Gruß Tobias

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Hallo, das ist ja genau mein Plan, aber wie denn? Im Moment
wandle ich vor dem Abspeichern z.B. mit der CString-Methode
Format mein double in einen CString um, umgekehrt CString in
double mit atof. Wie soll ich denen jetzt beibringen die
Formatierung bei der Anzeige anders zu machen als beim
speichern in eine Datei. Jedesmal vorher mit setlocale die
Ländereinstellungen ändern geht auch nicht, da diese
Einstellung für den gesamten Prozeß gilt und die Anwendung
multithreaded ist.

was ist daran jetzt so ein Problem? Du kannst ja deiner Speicher- und Ladefunktion beibringen, dass die Strings (egal aus welcher Sprache) den Komma- und Tausendertrenner durch das englische Format ersetzen. Umgekehrt halt genauso :wink: - Die Zeichen des aktuellen locale’s gibts via localeconv()

bye,
Christoph

Hallo, daß ich das alles von Hand ersetzen kann ist mir schon klar, ich dachte nur ob es eventuell eine elegantere Lösung gibt, bei der die String gleich mit den richtigen Trennzeichen erzeugt werden. Trotzdem danke.
Gruß Tobias

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]