AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datum auf Syntax überprüfen

Ein Thema von faux · begonnen am 8. Dez 2005 · letzter Beitrag vom 9. Dez 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#1

Datum auf Syntax überprüfen

  Alt 8. Dez 2005, 18:01
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:
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;
Wie löst man das denn wirklich? Ich bezweifle dass die try-except-end - Methode hier gut geignet ist.
Mal davon abgesehen, dass ich beim Debuggen nach jedem Tastenschlag einen Fehler bekomme...

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Datum auf Syntax überprüfen

  Alt 8. Dez 2005, 18:14
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:
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 ;
ungetestet...
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Datum auf Syntax überprüfen

  Alt 8. Dez 2005, 18:24
Zitat von faux:
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.
Warum nimmst du keinne TDateTimePicker ???
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Datum auf Syntax überprüfen

  Alt 8. Dez 2005, 18:29
Zitat von Jelly:
Die Funktion StrToDate wandelt eine String in ein Datum um. Dabei muss der String dem ShortDateFormat entsprechen.
Es funktioniert so wie ich es habe. StrToDate arbeittet genau so mit dem kurzem Datum.

[quote="shmia"]
Zitat von faux:
Warum nimmst du keinne TDateTimePicker ???
Weil das ganze in einen Code eingebettet wird. Da gibts nur Edit's. Außerdem muss das Eingabeformat yymmdd sein.

Ich brauche im Prinzip nur eine Funktion á la CheckDate oder isDate oder so.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Datum auf Syntax überprüfen

  Alt 8. Dez 2005, 19:35
Diese Funktion hab ich dir ja oben geschrieben. Sie liefert True wenn das Format OK, sonst False... Wo ist denn dein Problem?
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Datum auf Syntax überprüfen

  Alt 8. Dez 2005, 21:37
Zitat von Jelly:
Wo ist denn dein Problem?
Dass ich das wieder per try-except machen muss, und ich somit wieder nicht debugen kann.
Am Anfang sind die Edit's leer, und somit tritt gleich als Begrüßung eine exception auf.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von tomsel
tomsel

Registriert seit: 8. Dez 2005
Ort: am Chiemsee
304 Beiträge
 
Delphi 7 Professional
 
#7

Re: Datum auf Syntax überprüfen

  Alt 8. Dez 2005, 21:48
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
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Datum auf Syntax überprüfen

  Alt 9. Dez 2005, 01:44
Oder gleich im Menü Tools/Debugger Optionen/Sprach Exceptions/Bei Delphi exception stoppen abchecken.
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Datum auf Syntax überprüfen

  Alt 9. Dez 2005, 08:43
Zitat von Jelly:
Oder gleich im Menü Tools/Debugger Optionen/Sprach Exceptions/Bei Delphi exception stoppen abchecken.
Dann hält er aber bei keiner Exception mehr, und das ist ja imho der Sinn des Debuggers.

Danke für die Antworten.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Datum auf Syntax überprüfen

  Alt 9. Dez 2005, 09:19
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz