Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Delphi-Programm + englisches Windows - Problem (https://www.delphipraxis.net/138215-delphi-programm-englisches-windows-problem.html)

darksign 5. Aug 2009 10:21


Delphi-Programm + englisches Windows - Problem
 
Hallo!

Ich habe ein Delphi-Programm (eigentlich eine DLL, in der die gesamte Funktionalität steckt, und die aufgerufen wird) erstellt (auf Windows XP SP3 Deutsch, Delphi 7). Darin werden einige einfache Berechnungen durchgeführt, die Ergebnisse werden in ein Log-File zur Überprüfung ausgegeben! Das Programm(bzw. die DLL) funktioniert auf meinem Rechner einwandfrei!

Nun wird das gesamte Programm in der Ukraine auf einem Rechner mit einem englischen XP+SP2 ausgeführt, und plötzlich stimmen die Berechnungen nicht mehr! Irgendwie scheint es so, als gäbe es bei ner Division oder Multiplikation oder so Probleme! Auf dem englischen Windows wurde das Dezimaltrennzeichen von "." auf "," umgestellt, das brachte jedoch keine Besserung. Kann es sein, dass es auf einem englischen BS Probleme mit Statements wie "floattostr(Variable*2)" oder "format('%0.2f',[Variable*2])" gibt (wobei "Variable" ein Double ist)?

Das komische ist: Ich habs dann zuhause auf einem Rechner mit einem englischen XP+SP3 probiert, und da funktionierte alles wunderbar?

Oder wäre es möglich, dass es größere Unterschiede zwischen SP2 und SP3 gibt, und man villeicht das neueste SP3 raufspielen sollte?

Am liebsten wärs mir, wenn ich einfach etwas beim Betriebssystem umstellen könnte, damit das Programm funktioniert!

Villeicht weiß jemand von euch eine Lösung, ich weiß echt nicht mehr weiter!

mfg und danke für eure Hilfe

Luckie 5. Aug 2009 10:49

Re: Delphi-Programm + englisches Windows - Problem
 
Zitat:

Zitat von darksign
Am liebsten wärs mir, wenn ich einfach etwas beim Betriebssystem umstellen könnte, damit das Programm funktioniert!

Und genau das wäre die schlechteste Lösung.

Zitat:

Division oder Multiplikation oder so Probleme
Was für Probleme? Gibt es eine Exception? wenn ja, welche?

Zitat:

Auf dem englischen Windows wurde das Dezimaltrennzeichen von "." auf "," umgestellt
Und genau das sollte man nicht tun. Dein Programm sollte sich den Ländereinstellungen anpassen und nicht das Betriebsystem an dein Programm. Jetzt hat er nämlich Systemweit das Komma als Dezimaltrennzeichen.

BTW: Wenn du schon in mehreren Foren gleichzeitig Beiträge zum gleichen Thema verfasst, dann verlinke sie wemfalls.

TeronG 5. Aug 2009 10:58

Re: Delphi-Programm + englisches Windows - Problem
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von darksign
Am liebsten wärs mir, wenn ich einfach etwas beim Betriebssystem umstellen könnte, damit das Programm funktioniert!

Und genau das wäre die schlechteste Lösung.

JO!. Stell dir vor, jedes Programm hätte "seine eigenen" Einstellungen. Bei jedem Programmstart erstmal alles prüfen/ändern...

Zitat:

... Dezimaltrennzeichen von "." auf "," umgestellt ...
Benutze bei sowas immer lieber DecimalSeparator, ThousandSeparator & co anstatt direkt ein '.'/',' einzugeben.

Aber um genaueres sagen zu können währe, wie Luckie schon sagte, eine Exception recht hilfreich.

Luckie 5. Aug 2009 11:00

Re: Delphi-Programm + englisches Windows - Problem
 
Zitat:

Zitat von TeronG
Aber um genaueres sagen zu können währe, wie Luckie schon sagte, eine Exception recht hilfreich.

Oder innerhalb des Programmes eine Fehlerbehandlung mit fehlermeldung, die einem weiterhelfen könnte.

Zeig doch mal die vermutete Stelle im Code, die den Fehler verursachen soll.

darksign 5. Aug 2009 11:20

Re: Delphi-Programm + englisches Windows - Problem
 
auf diesem Rechner läuft nur dieses eine Programm, sonst nichts!

Es treten im Programm keine Exceptions auf, also weiß ich auch nicht, wo dieser Fehler auftritt!

Es ist nur so: Normalerweise sollte als Ergebnis 50 rauskommen, das Ergebnis beträgt jedesmal nur die Hälfte, also 25! Zweimal im gesamten Programm wird mit diesem ERgebnis gerechnet:

"teilmenge2:= Teilmenge/(dsSilobelegung.RecordCount*2)" (Teilmenge1+2 sind Double, dsSilobelegung ist ein DataSet mit Datensätzen aus der Datenbank, wobei RecordCount immer 1 ist, und somit eigentlich gar nicht gebraucht wird (ist nur vorsorglich eingebaut))!

"sek_benoetigt := (teilmenge2 / teilfoerder2) *3600"

Es sind nur normale Divisionen/Multiplikationen! Die einzige Lösung ist, dass ich ein paar Logs ausgebe, mit den Zwischenschritten der Rechnung, villeicht komme ich so auf das Problem! Ich bin leider selber nicht auf der Anlage, und Fernwartung gibt es keine, da kein Internet vorhanden ist!

Edit: Weiters stellt sich die Frage, warum es auf meinem englischen Windows einwandfrei funktioniert, egal, ob als Dezimaltrennzeichen "." oder "," eingestellt ist! Liegt es villeicht doch daran, dass "nur" SP2 verwendet wird, und nicht SP3

TeronG 5. Aug 2009 11:27

Re: Delphi-Programm + englisches Windows - Problem
 
Hmm ... dann ist wohl die log-Datei mit Zwischenergebnissen am hilfreichsten.

Im Vorfeld kannste noch: "Zeig doch mal die vermutete Stelle im Code, die den Fehler verursachen soll."

Immer die Hälfte klingt komisch ... evtl ein generischer Typ der falsch interpretiert wird? :gruebel: aber nee .... :gruebel:

Luckie 5. Aug 2009 11:27

Re: Delphi-Programm + englisches Windows - Problem
 
Dann zeig uns doch mal den Code. Und wie sieht es mit einer gescheiten Fehlerbehandliung aus? Das keine Exception auftritt, heißt ja nicht, dass man bei fehlern selbst eine auslösen kann.

Jeden falls so kommen wir hier nicht weiter.

QuickAndDirty 5. Aug 2009 11:48

Re: Delphi-Programm + englisches Windows - Problem
 
Woher weißt du denn das die Eingangsgröße nicht nur halb so groß ist?
Aus meiner Erfahrung mit Fehlern die NUR beim Kunden auftreten:
Man darf dem user nicht alles Glauben was er sagt,
die lassen oft alles mögliche weg. Ohne Fernwartung geht in der Regel fast garnichts, ausser
die Bedienung parallel fernmündlich nachzuvollziehen....
Es ist im übrigen Möglich das SP3 zu deinstallieren, wenn du das nachvollziehen willst.

Ich würde es Loggen, und eine Test DLL mit der isolierten Codestelle schreiben.

Wenn es dort kein Internet gibt kannst du in Windows ein VPN über MODEM einrichten. Geld für ein Modem
sollten die wohl haben. Haben wir z.B. bei sehr stark abgesicherten Krankenhäusern so VPN per ISDN
und dann mit Ultra VNC(auf 4 Farben damit es flott geht) drauf.

darksign 5. Aug 2009 11:58

Re: Delphi-Programm + englisches Windows - Problem
 
Wenn die Eingangsgröße nur halb so groß wäre, dann wären auch die anderen Berechnungen falsch, die stimmen aber! Außerdem funktioniert das Programm auch auf dem Notebook von meinem Arbeitskollegen, die Eingangsgröße wird ja aus der Datenbank geholt! Das Programm funktioniert überall, nur nicht auf dem einen Rechner mit dem englischen WinXP+SP2

Luckie 5. Aug 2009 12:02

Re: Delphi-Programm + englisches Windows - Problem
 
Noch mal, so kommen wir hier nicht weiter!

Setz dir mal ein englisches XP auf und guck selber.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:36 Uhr.
Seite 1 von 2  1 2      

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