[gelöst] StrToDateTime--EKonvertError

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
pierredrks
Beiträge: 34
Registriert: Do 4. Okt 2007, 18:35
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Braunfels

[gelöst] StrToDateTime--EKonvertError

Beitrag von pierredrks »

Hallo,
ich bin gerade dabei ein Delphi-Projekt nach Lazarus zu portieren.
Ich habe mehrere Daten in Labels stehen und möchte die voneinander abziehen um zu berechnen wieviel Zeit zwischen zwei Daten vergangen ist.
Die Daten stehen in der Form(dd.mm.yyyy std:min:sek) im Label.
Ich habe zwei Variablen vom Typ real deklariert und versuche so:

Code: Alles auswählen

a:=StrToDateTime(LOrtsz.Caption);
  b:=StrToDateTime(LLetzter.Caption);


die Daten zuzuweisen. Unter Delphi war das kein Problem, wenn ich es mit Lazarus kompiliere funktioniert das auch Problemlos, aber bei der Ausführung kommt es zu einem EKonvertError.

Hat jemand eine Idee woran das liegen könnte?
Gruß
Pierre
Zuletzt geändert von pierredrks am Mi 5. Dez 2007, 08:51, insgesamt 1-mal geändert.

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: StrToDateTime--EKonvertError

Beitrag von Euklid »

Hallo Pierre!

pierredrks hat geschrieben:Ich habe zwei Variablen vom Typ real deklariert und versuche so:


Soweit ich weiß gibt es einen Typ Datetime. Der Befehl StrToDatetime wandelt den String in diesen Typ um. Nun bin ich mit nicht sicher, ob der Typ real kompatibel mit Datetime ist?

Gruß, Euklid

pierredrks
Beiträge: 34
Registriert: Do 4. Okt 2007, 18:35
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Braunfels

Beitrag von pierredrks »

Wenn ich sie als DateTime deklariere kommt folgende Meldung:
mainu.pas(271,15) Error: Identifier not found "DateTime"

Noch ein Nachtrag zur Fehlermeldung zum ConvertError meldet er noch
Invalid Date Format

Edit:
Mit TDateTime funktioniert es. Und das Datum muss mit - getrennt werden Punkte führen zu einem Fehler.
Danke für die schnelle Hilfe
Gruß
Pierre
Das Herz besitzt Gründe, die die Vernunft nicht kennt.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

StrToDateTime konvertiert so wie das aktuelle Systemdatumsformat eingestellt ist. Du musst also zusehn das das Datumsformat dem des Systems entspricht. Oder DateFormat und TimeFormat selbst setzen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pierredrks
Beiträge: 34
Registriert: Do 4. Okt 2007, 18:35
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Braunfels

Beitrag von pierredrks »

Gut das zu wissen. Aber wie gesagt lag es daran, dass ich das Datum in der Form 04.12..2007 angegeben hatte und FPC nimmt es scheinbar nur im Format 04-12-2007.
Aber für's nächste mal. Wie setze ich das Datumsformat?

Gruß
Pierre

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Wie schon gesagt FPC nimmt es in dem Format wie es in deinem System eingestellt ist.

Wie du das Datumsformat setzt, hab ich auch schon geschrieben. Lesen bildet.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pierredrks
Beiträge: 34
Registriert: Do 4. Okt 2007, 18:35
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Braunfels

Beitrag von pierredrks »

Dateformat und TimeFormat!! da hast du recht. Wer lesen kann...
Was ich allerdings nicht verstehe
FPC nimmt es in dem Format wie es in deinem System eingestellt ist.

Meine Systemzeit ist genauso formatiert wie die Labels, also mit Punkten als Datumstrenner. Aber evtl versehe ich dich jetzt auch falsch.
Gruß
Pierre

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

Wird auch aus der Ländereinstellung genommen, da wird für de_de möglicherweise das neue DIN-Format genommen. Das wäre dann:

tt-mm-yyyy
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

pierredrks
Beiträge: 34
Registriert: Do 4. Okt 2007, 18:35
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Braunfels

Beitrag von pierredrks »

Laut Systemeinstellungen wird es auch mit Punkt getrennt. Aber da es jetzt funktioniert kann ich mit Strichen statt Punkten leben.
Vielen dank für eure Hilfe.
Als abschliessende Frage würde mich noch interessieren wo ich den Thread als gelöst markieren kann.
Gruß
Pierre
Das Herz besitzt Gründe, die die Vernunft nicht kennt.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

nirgends.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

pierredrks hat geschrieben:Als abschliessende Frage würde mich noch interessieren wo ich den Thread als gelöst markieren kann.


Du kannst due Thread-Überschrift mit einem [gelöst] versehen, indem du den ersten Beitrag editierst.

Gruß, Euklid

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ich finde, wenn wir das jetzt aber so machen sollten wirs auch durchziehn. Eigentlich ja ganz übersichtlich. Monta, kannst das mal Stück für Stück nachziehn ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Christian hat geschrieben:Ich finde, wenn wir das jetzt aber so machen sollten wirs auch durchziehn. Eigentlich ja ganz übersichtlich. Monta, kannst das mal Stück für Stück nachziehn ?


das wird nicht standardmäßig eingeführt.

Schon deshalb nicht, weil Beiträge wiederaufgegriffen werden können usw.
Abgesehen davon schaut eh keiner mehr nen alten Beitrag an, wenn es nicht eh seinem Problem entspricht, also was soll das...außerdem stehen dann alle immer wieder als editiert markiert.

Also, wer es unbedingt machen will, bitte, aber als Standard ists abgelehnt.
Johannes

Antworten