Seite 1 von 1

Linux Preference . , Problem

Verfasst: 13.09.2013 20:11
von mbvwt4
Hallo,

ich habe folgendes Problem unter Linux bemerkt: Wenn man eine Preference Datei erzeugt, in der eine Float oder Double Varriable abgelegt wird, so wie in folgenden Beispiel:

Code: Alles auswählen

  If CreatePreferences("/home/marcus/sen1.ini")
    PreferenceGroup("Window")
    WritePreferenceLong ("WindowX", 123)
    WritePreferenceLong ("WindowY", 124)
    WritePreferenceDouble("Double", 11.12345)
    WritePreferenceFloat("Float", -123.54321)
    ClosePreferences()
  EndIf
Diese dann wieder einliest aber mit den Zusatz eines MessageRequester:

Code: Alles auswählen

  If OpenPreferences("/home/marcus/sen1.ini")
    PreferenceGroup("Window")
    Debug ReadPreferenceLong ("WindowX", 0)
    Debug ReadPreferenceLong ("WindowY", 0)
    Debug ReadPreferenceDouble("Double", 0)
    Debug ReadPreferenceFloat("Float", 0)
    ClosePreferences()
  EndIf
  MessageRequester("Test","Test")
dann erscheinen die Float und Double Varriable ohne Nachkommastellen.

Umgekehrt beim erstellen der INI Datei mit Zusatz eines MessageRequester und anschließenden einlesen, aber hier dann ohne MessageRequester, erscheinen die Float und Double Varriable wieder ohne Nachkommastellen.
Wenn man dann die INI Datei mit einem Editor betrachtet sind die Float und Double Varriable nicht mit einen Punkt als Dezimaltrennung aufgeführt sondern mit einen Komma. :shock:
Man hat den Eindruck, dass man mit dem MessageRequester einstellen kann, das ein Punkt oder ein Komma als Dezimaltrennung verwendet werden soll.

Ich habe dies auf zwei Rechnen unter Ubuntu 10.04LTS bemerkt. Ich bin mir nicht sicher ob dies ein Bug ist oder ob dies einen anderen Grund hat, vieleicht kann jemand weiterhelfen.

Re: Linux Preference . , Problem

Verfasst: 13.09.2013 23:43
von ts-soft
Bestätigt!

Sehr merkwürdiger bug, kann ihn aber bestätigen und habe ihn im engl. Forum gemeldet:
http://www.purebasic.fr/english/viewtop ... 45#p425045

Gruß
Thomas

Re: Linux Preference . , Problem

Verfasst: 17.09.2013 19:17
von mbvwt4
Ich habe festgestellt das dieses Problem mit allen Requestern in Verbindung steht. Welche Möglichkeiten habe ich nun, alle INI - Dateien auf Komma umstellen?

Re: Linux Preference . , Problem

Verfasst: 18.09.2013 09:18
von HeX0R
Du könntest es als String speichern via StrF und StrD.

Oder, falls Du die Ini nicht in einem Editor betrachten/verändern möchtest, als Long

Code: Alles auswählen

WritePreferenceLong("DeinFloat", PeekL(@DeinFloat.f))
oder Quad

Code: Alles auswählen

WritePreferenceQuad("DeinDouble", PeekQ(@DeinDouble.d))
und dann wieder als Long bzw Quad einlesen und in eine Variable "poken":

Code: Alles auswählen

PokeL(@DeinFloat.f, ReadPreferenceLong("DeinFLoat", 0))
bzw.

Code: Alles auswählen

PokeQ(@DeinDouble.d, ReadPreferenceQuad("DeinDouble", 0))
Ist natürlich alles eine Krücke, aber solange der Fehler besteht...