Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Fehlerhafte Verarbeitung von extended auf untersch. WinVersionen (https://www.delphipraxis.net/163711-fehlerhafte-verarbeitung-von-extended-auf-untersch-winversionen.html)

frieder2008 12. Okt 2011 16:17

Fehlerhafte Verarbeitung von extended auf untersch. WinVersionen
 
Liebe Leute,

ich habe ein Programm geschrieben, das an vielen Stellen mit extended-Variablen arbeitet. Das funktioniert auf meinen PCs (Win7 / WinXP), auf dem PC eines Kollegen (Vista) und noch weiteren (unbek. Version) ohne Probleme.

ABER: Auf manchen Systemen (in einem konkreten Fall war es Win7; weitere Systemumgebung unbekannt) funktioniert das nicht. Es kommt dann der Fehler, dass z.B. "12,22" keine gültige Gleitkommazahl sei. Wieso?!?

In einem weiteren Fall (System unbek.) kam der Fehler, weil als Systemspracheinstellung nicht "DE/Deutschland" sondern "DE/Schweiz" gesetzt war. Nach dem Umstellen kam der Fehler nicht mehr. - Beim vorherigen Fall (Win7) half das jedoch nichts; auch das separate Starten im Admin-Modus brachte keine Lösung.

Gibt es irgendwelche grundlegenden Systemunterschiede bei der Verarbeitung von Variablenformaten (hier extended, aber vlt. gibts auch bei anderen Formaten Probleme?), die ich bisher nie berücksichtige habe?

Danke für Eure Mühe und Euch allen einen schönen Abend,
frieder

jaenicke 12. Okt 2011 16:20

AW: Fehlerhafte Verarbeitung von extended auf untersch. WinVersionen
 
Es gibt einen Fehler in Windows 7 bzw. vorkonfigurierten Systemen damit, so dass trotz deutscher Spracheinstellung der Dezimalseparator falsch gesetzt ist. Auf diesen Systemen sollte es genügen, die Einstellung auf eine andere Sprache und zurück zu setzen (übernehmen zwischendurch drücken sollte schon reichen).

bernerbaer 12. Okt 2011 16:28

AW: Fehlerhafte Verarbeitung von extended auf untersch. WinVersionen
 
Ursache ist wohl der Dezimalseperator, jeder Anwender kann in seinem System den Dezimalseperator selbst festlegen. Standardmässig für D ist das Komma gesetzt, für viele andere Sprachregionen ist aber der Punkt als Trennzeichen festgelegt. Wichtig ist aber: man kann sich nie auf einen Standard verlassen, sondern muss vor jeglicher Umwandlung prüfen welches der eingestellte Dezimalseperator ist.

Weitere Informationen dazu solltest du hier im Forum über die SuchfunktionHier im Forum suchendezimalseperator finden

frieder2008 12. Okt 2011 16:59

AW: Fehlerhafte Verarbeitung von extended auf untersch. WinVersionen
 
Zitat:

Zitat von bernerbaer (Beitrag 1130067)
Ursache ist wohl der Dezimalseperator, jeder Anwender kann in seinem System den Dezimalseperator selbst festlegen. Standardmässig für D ist das Komma gesetzt, für viele andere Sprachregionen ist aber der Punkt als Trennzeichen festgelegt. Wichtig ist aber: man kann sich nie auf einen Standard verlassen, sondern muss vor jeglicher Umwandlung prüfen welches der eingestellte Dezimalseperator ist.

Weitere Informationen dazu solltest du hier im Forum über die SuchfunktionHier im Forum suchendezimalseperator finden

Danke für die Hinweise, das ist ja echt ärgerlich. Kann es sein, dass das Problem ausschließlich bei strtofloat auftritt, oder muss ich noch andere (unbekannte) Minen fürchten?

- Und noch was: in einem Fall hatten wir ja die Spracheinstellung geändert, hat aber nichts genutzt. Heißt das, dass der Dezimalseperator auch unabhg von der Spracheinstellung (im System) gesetzt sein kann?

Danke und schöne Grüße,
frieder

mkinzler 12. Okt 2011 17:00

AW: Fehlerhafte Verarbeitung von extended auf untersch. WinVersionen
 
Du könntest auch die überladene Version mit Angabe des Trenners verwenden.

frieder2008 12. Okt 2011 17:02

AW: Fehlerhafte Verarbeitung von extended auf untersch. WinVersionen
 
Zitat:

Zitat von mkinzler (Beitrag 1130085)
Du könntest auch die überladene Version mit Angabe des Trenners verwenden.

Zufällig einen Link/die Funktion zur Hand? - Wenn ich suche, finde ich alles Mögliche ("keine überladene Version von.."), nur nicht das Gesuchte..

Danke und Gruß, frieder

mkinzler 12. Okt 2011 17:04

AW: Fehlerhafte Verarbeitung von extended auf untersch. WinVersionen
 
http://docwiki.embarcadero.com/VCL/d...ils.StrToFloat

frieder2008 12. Okt 2011 17:58

AW: Fehlerhafte Verarbeitung von extended auf untersch. WinVersionen
 
Wenn ich richtig sehe, gibt es die überladene Version in D5 noch nicht.. Hm.

EDIT: Ich glaube, ich machs mal wieder komplizierter als es ist. Kann es gerade nicht testen, aber im Prinzip müsste ich ja einfach nur Decimalseparator bei OnCreate setzen und damit müsste alles funktionieren.

- Sorry fürs lange rumfragen. Wünsche allen noch einen schönen Abend!

Gruß, frieder

mkinzler 12. Okt 2011 19:18

AW: Fehlerhafte Verarbeitung von extended auf untersch. WinVersionen
 
Dann kannst du aber selber überprüfgen, was als Trenner verwendet wird und diese dann im String entsprechend tauschen


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:31 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