![]() |
trystrtodatetime
Hi,
es gibt ja eine function die überprüft, ob eine variable ein gültiges datum enthält und true oder false wiedergibt. function TryStrToDateTime(const S: string; out Value: TDateTime): Boolean; overload; Irgendwie bekomme ich das nicht richtig eingebaut. So hab ich probiert:
Delphi-Quellcode:
Hab ich da den total falschen Ansatz?
procedure TForm1.Timer1Timer(Sender: TObject);
begin if TryStrToDateTime(a):=false then label1.Caption:=('Format ungültig'+#1310#+'Datum.txt überprüfen!'); else label1.caption:=(datetimediff(strtodatetime(a), ((now)))); end end; |
Re: trystrtodatetime
Kuck dir doch mal die Parameter an. Als erstes übergibst du den String mit dem Datum und der zweite Parameter enhält dann das Datum, wenn es geklappt hat.
Delphi-Quellcode:
var
s: String; Mydate: TDateTime; begin s := '2004-08-21'; if TryStrToDateTime(s, Mydate) then ShowMessage('hat geklappt') else ShowMessage('Hat nicht geklappt'); |
Re: trystrtodatetime
TryStrToDateTime ist schon vom Typ Boolean und braucht in Pascal und C nicht
mit dem Wert "False" oder "True" gegengeprüft werden:
Delphi-Quellcode:
ist also
if TryStrToDateTime(a) = False then ...
Delphi-Quellcode:
Weiterhin wird beim Prüfen auf Gleichheit in Pascal(Delphi) das "=" Zeichen verwendet.
if not TryStrToDateTime(a) then
Das Zeichen ":=" dagegen ist eine Zuweisung z.B.:
Delphi-Quellcode:
Danach hat "a" also den Wert "5"
a := 5
|
Re: trystrtodatetime
Zitat:
|
Re: trystrtodatetime
Ja, geht auch mit Prüfen auf "False". Aber ":=" ist garantiert ein Problem!
|
Re: trystrtodatetime
Das auch.
|
Re: trystrtodatetime
Ob es vielleicht aus Performancegründen besser ist Folgendes zu probieren:
Delphi-Quellcode:
????
begin
try label1.caption:=(datetimediff(........ except label1.caption:='Datum ungültig'; end; end; |
Re: trystrtodatetime
Hi,
Habs hinbekommen. Das mit := war echt blöd. :oops: Find ich super, so viele Antworten in so kurzer Zeit. Cooles Forum! Vielen Dank euch allen für die schnelle Hilfe. paelsoft, dein vorschlag hat nicht hingehauen. Da kommt trotzdem ein econvert-error bei raus. |
Re: trystrtodatetime
Hi Dreas,
Kommt die EConvert-Exception auch, wenn du das Programm nicht mit F9 in der IDE sondern die EXE-Datei direkt startest? (So würde es ja später auch der Anwender machen) |
Re: trystrtodatetime
Das hab ich gar nicht ausprobiert muss ich ehrlich sagen.
Aber jetzt, da du das erwähnst, fällt mir ein, dass ich das gleiche bei einem Programm schon mal hatte. (Habe seit langer Zeit nichts mehr mit Delphi gemacht). Da gabs bei F9 auch ein error und bei der fertig kompilierten exe dann nicht mehr. Hast Recht, dann würde try ... except wohl auch funktionieren. Probier ich aber nicht mehr aus, Programm ist fertig und läuft. Danke, dass du mir das wieder in Errinnerung gerufen hast! :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz