AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Probleme mit Ini Dateien wg. Englischer Windows Verision
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit Ini Dateien wg. Englischer Windows Verision

Ein Thema von Oracle · begonnen am 12. Dez 2007 · letzter Beitrag vom 12. Dez 2007
Antwort Antwort
Oracle
(Gast)

n/a Beiträge
 
#1

Probleme mit Ini Dateien wg. Englischer Windows Verision

  Alt 12. Dez 2007, 11:44
Ich schreibe zwei einstellungen in eine Ini Datei mit folgendem Aufruf:

Delphi-Quellcode:
Ini.WriteFloat('Wavelength', 'Specmin', Specmin);
Ini.WriteFloat('Wavelength', 'Stepsize', Stepsize);
Genauso lese ich sie auch wieder aus:

Delphi-Quellcode:
Specmin := Ini.ReadFloat('Wavelength', 'Specmin', 0);
Stepsize := Ini.ReadFloat('Wavelength', 'Stepsize', 1);
Das funktioniert auf meinem PC mit deutschem Windows prima. Auf einem PC mit einer englischen Windows Version geht das nicht mehr. Da liefert er mir beim lesen immer die Default Werte zurück. Da die Werte zuvor auf dem Rechner mit der deutschen Version abgelegt wurden.

Ich habe herausgefunden, dass er die Werte mit einem Komma speichert, und ich sie dann von Hand in einen Punkt ändern muss, so dass die Werte auch auf dem englischen System gelesen werden können. Gibt es eine Möglichkeit Delphi zu sagen, dass er pauschal immer einen Floatwert mit einem Punkt in einer INI Datei speichern soll, so dass ich dieses Problem damit umschiffen kann?

Vielen Dank schon mal im Vorraus
  Mit Zitat antworten Zitat
fwsp
(Gast)

n/a Beiträge
 
#2

Re: Probleme mit Ini Dateien wg. Englischer Windows Verision

  Alt 12. Dez 2007, 11:53
es gibt eine globale variable DecimalSeperator. den kannst du setzen wie du möchtest. vllt ist auch gangbar die werte als strings zu speichern und sie dann in beim lesen in floats zu wandeln.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.034 Beiträge
 
Delphi 12 Athens
 
#3

Re: Probleme mit Ini Dateien wg. Englischer Windows Verision

  Alt 12. Dez 2007, 11:57
In der Unit SysUtils gibt es die globale Variablen DecimalSeparator und ThousandSeparator.
Diese werden beim Programmstart mit den Spracheinstellungen des Systems (Windows) geladen.

Allerdings kannst du diese auch selber zuweisen:
Delphi-Quellcode:
// wenn du möchtest daß es immer in Englisch ist
DecimalSeparator := '.';
ThousandSeparator := ',';
Achtung: dieses gild dann für dein gesamtes Programm

also entweder möchtest du daß es überall so ist,
oder du setzt vorm Zugriff auf die INI diese Werte und setzt sie nach dem Zugriff wieder zurück (Werte natürlich vorher gespeichert)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
573 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Probleme mit Ini Dateien wg. Englischer Windows Verision

  Alt 12. Dez 2007, 12:57
Achtung, wenn Du DecimalSeparator := '.' dauerhaft in Deinem Programm setzt, solltest Du auch Application.UpdateFormatSettings:=False setzen, da ansonsten eine WM_WININICHANGE Botschaft den Decimalseparator wieder überschreibt
  Mit Zitat antworten Zitat
Oracle
(Gast)

n/a Beiträge
 
#5

Re: Probleme mit Ini Dateien wg. Englischer Windows Verision

  Alt 12. Dez 2007, 13:56
Super Dass ich so schnell dank Euch schon eine Lösung habe, hätte ich gar nicht gedacht. Ihr seid genial.
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Probleme mit Ini Dateien wg. Englischer Windows Verision

  Alt 12. Dez 2007, 14:36
Der "minimal-invasive" Ansatz für das Problem wäre allerdings nicht, programmweit die Einstellung zu ändern (du bekommst sonst mit Usereingaben wieder das gleiche Problem in Grün) sondern die Werte als Strings einzulesen und dann mit der erweiterten Version von StrToFloat in eine Fliesskommazahl zu konvertieren. Dieser Version kann man ein Template mitliefern, wie welche Zeichen zu interpretieren sind. Ich habe das ganze schonmal dokumentiert, weil die Frage immer wieder auftaucht. Ich such mal eben den Thread raus und reiche ihn nach.

Nachtrag: hier ist der Link
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz