![]() |
Datum auf Syntax überprüfen
Hallo!
Ich will überprüfen, ob in einem Edit ein korrektes Datum eingegeben wurde. Mein Edit akzeptiert genau 6 Ziffern. Diese sollen dann im Format yymmdd in ein Datum umgerechnet werden. Zur Zeit habe ich das so gelöst:
Delphi-Quellcode:
Wie löst man das denn wirklich? Ich bezweifle dass die try-except-end - Methode hier gut geignet ist.
try
wrong_limit := false; old := (Length(Edit8.Text) = Edit8.MaxLength) and (Now > StrToDate(Copy(Edit8.Text, 5, 2)+'.'+Copy(Edit8.Text, 3, 2)+'.'+Copy(Edit8.Text, 1, 2))); except on EConvertError do begin old := true; wrong_limit := true; end; end; Mal davon abgesehen, dass ich beim Debuggen nach jedem Tastenschlag einen Fehler bekomme... Grüße Faux |
Re: Datum auf Syntax überprüfen
Die Funktion StrToDate wandelt eine String in ein Datum um. Dabei muss der String dem ShortDateFormat entsprechen. Alos könntest Du Folgendes probieren, was allerdings auch wieder über try..except läuft:
Delphi-Quellcode:
ungetestet...
function IsDateValid (Datum : string ; var D : TDate) : boolean ;
var OldShortDateFormat : string ; begin OldShortDateFormat := ShortDateFormat ; ShortDateFormat := 'yymmdd' ; try D := StrToDate (Datum) ; Result := true ; except Result := false ; end ; ShortDateFormat := OldShortDateFormat ; end ; |
Re: Datum auf Syntax überprüfen
Zitat:
|
Re: Datum auf Syntax überprüfen
Zitat:
[quote="shmia"] Zitat:
Ich brauche im Prinzip nur eine Funktion á la CheckDate oder isDate oder so. Grüße Faux |
Re: Datum auf Syntax überprüfen
Diese Funktion hab ich dir ja oben geschrieben. Sie liefert True wenn das Format OK, sonst False... Wo ist denn dein Problem?
|
Re: Datum auf Syntax überprüfen
Zitat:
Am Anfang sind die Edit's leer, und somit tritt gleich als Begrüßung eine exception auf. Grüße Faux |
Re: Datum auf Syntax überprüfen
Die Exception abzufangen ist schon der richtige Weg, das solltest Du schon so machen.
Noch ein Tipp: setze einen Haltepunkt auf die Zeile mit dem strtodate, gehe in die Haltepunkteigenschaften, klicke auf "erweitert", schalte "Anhalten" aus und "weitere Exceptions ignorieren" an. Dann ist der Nerv-Faktor gleich um einiges geringer ;-) |
Re: Datum auf Syntax überprüfen
Oder gleich im Menü Tools/Debugger Optionen/Sprach Exceptions/Bei Delphi exception stoppen abchecken.
|
Re: Datum auf Syntax überprüfen
Zitat:
Danke für die Antworten. Grüße Faux |
Re: Datum auf Syntax überprüfen
Hallo Faux,
ich halte folgende Vorgehensweise für angebracht: Bei Delphi-Exceptions stoppen sollte eingeschaltet sein. In der Liste der zu ignorierenden Exceptions EConvertError hinzufügen und markieren. Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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-2025 by Thomas Breitkreuz