Probleme mit TDateTime
-
Hallo,
wie schon gesagt habe ich ein kleines Problem mit dem TDateTime-Objekt.
Ich lese eine Zeile aus einer Textdatei ein die folgendes Format hat (Datum,Uhrzeit,Temperatur):
30.09.2003;16:06:35;38,71
Dann trenne ich diese Zeichenkette mit token(0,";") in die drei Werte und speichere sie in einem TSringGrid ab. Wenn ich jetzt allerdings aus dem Datum ein TDateTime Objekt machen will, kommt immer eine Exception, das es sich um kein gültiges Datumsformat handelt.AnsiString Date= StringGrid->Cells[0][2]; TDateTime DTDate(Date,TDateTime::Date);
Wenn ich allerdings das Datum "per Hand" einfüge, dann klappt das. Es liegt also nicht an einem falschen Datumsformat (dd.mm.yyyy)
AnsiString Date= "30.09.2003"; TDateTime DTDate(Date,TDateTime::Date);
Habe die Zeichenketten auch schon miteinander verglichen: strcmp(StringGrid->Cells[0][2].c_str(),"30.09.2003")
und sie sind gleichTrotzdem kommt immer die Meldung "' ist kein gültiges Datum'...
Ich habe jetzt keine weitere Idee, woran es leige könnte. Freue mich auf einen Hinweis oder eine Lösung des Problems. Ich hoffe, ich habe genügend Informationen gepostet, wenn nicht, dann sagt bescheid. Vielen Dank im voraus
!!!
cu bais
-
da der string ja offenbar leer ist, kanns vielleicht daran liegen, dass du das datum aus der falschen zelle kopiert hast
mach doch einfach mal nen test
ShowMessage(StringGrid->Cells[0][2]);
-
Der ist ja nicht leer, ich kann mit das Datum auch z.B. in einem TEdit anzeigen lassen und wie geasgt, wenn ich den String aus StringGrid->Cells[0][2].c_str() mit dem Datum "30.09.2003" vergleiche dann stimmen die ja überein.
Trotz Gleichheit, kommt bei dem einen eine Fehlermeldung und beim anderen nicht
-
bais,
bais schrieb:
Trotzdem kommt immer die Meldung "' ist kein gültiges Datum'...
normalerweise wird doch bei der Meldung in Hochkommata auch angezeigt, was kein gültiges Datum ist. Was steht denn da bei Dir?
-
Danke dschensky,
hab den Fehler jetzt gefunden! Da du mich drauf aufmerksam gemacht hast, das da drin stehen muß, was kein Datum ist, hab ich meine Schleife noch mal angeschaut. In meinem Datensatz existieren nämlich leere Zeilen, die die verschiedenen Temperaturkanäle voneinander trennen. Somit wird dann "nix" als Datum übergeben. Hab jetzt noch eine if-Abfrage vorgebaut und nun klappt alles wunderbar
Danke für den guten TippCU bais