Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#3

Re: StrToTime löst unerklärbare Exception aus

  Alt 7. Mär 2007, 16:29
Zitat von easywk:
(a) Die Systemeinstellungen wie TimeSpearator, Timeformat usw. sind exakt die gleichen wie bei mir
(b) als Exception kommt "'00:00:25,570' ist keine gültige Uhrzeit"
Hi, ich würde sagen, dass Du schon auf dem richtigen Weg bist, an einer anderen Stelle sollte es gar nicht scheitern. Hast Du denn alle Lokale-Einstellungen ausgelesen? Insbesonder auch ShortTimeFormat? Ich glaube das war das Format (steht in der OH), dass zur Umwandlung tatsächlich verwendet wird (ok, gerade nachgeschaut, ist wohl doch der TimeSeperator, sorry).
Noch besser ist es aber, wenn Du Dich nie darauf verlässt, dass Du hier den richtigen Wert auf dem Rechner des Kunden vorfindest und diese Einstellungen immer setzt. Was natürlich noch bleibt ist der Dezimale-Seperator, der ist nicht überall ein Komma!

Der beste Weg ist (wie gesagt), dass Du Dich nie darauf verlässt, dass das System des Kunden eine bestimmte Einstellung besitzt. Hol Dir einfach mit GetLocaleFormatSettings die aktuellen Einstellungen und setze alle diese Einstellungen (die Du verwendest) explizit auf den richtigen Wert. Dieses veränderte Record übergibst Du dann mit an die Funktion StrToTime und dann sollte es immer ohne Probleme laufen. Teste es einfach mal, indem Du den Dezimal-Seperator und den TimeSeperator setzt.

Welche dieser Werte wirklich verwendet werden kannst Du natürlich lokal bei Dir prüfen, setze einfach mal alle Felder des Records auf einen völlig dummen Wert (z.B. '#') und änder nur die, von denen Du ausgehst, dass sie benötigt werden (also erstmal nur TimeSeperator). Klappt dann die Umwandlung, dann liegt das Problem wirklich woanders, scheiterst Du aber auch, dann wird eine der anderen Einstellungen ebenfalls nötig sein (z.B. der schon sooft erwähnte Dezimal-Seperator).

Gruß Der Unwissende
  Mit Zitat antworten Zitat