Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi String = Datum Prüfen (https://www.delphipraxis.net/46292-string-%3D-datum-pruefen.html)

Aljoscha 22. Mai 2005 11:12


String = Datum Prüfen
 
Hi.
Ich habe ein Problem mit einem Programm das ich für die Schule schreiben muss.
Ich hab versucht den Fehler mit try und finally zu umgehen, aber es hat nicht funktioniert.
Es geht darum das ich beim Programmstart einige Strings einlese und diese verarbeite.
Dabei kann es aber sein das ein String leer oder falsch aufgebaut ist.
Dann kommt bei dem Versuch diesen String mit
Delphi-Quellcode:
StrToDate(String)
zu bearbeiten zu einem Fehler der sich einfach nicht umgehen lässt.
Daher wollte ich eine If-Abrage auf die Gültigkeit des Strings ansetzen.
Meine Frage also:

Wie kann ich einen String auf Gültikgeit als Datum prüfen?

thx 4 help :)

Waldteufel 22. Mai 2005 11:17

Re: String = Datum Prüfen
 
Hi.

Auch mit Try-Except und Try-Finally abgefangene Fehler werden angezeigt, wenn (und nur, wenn) man das Programm aus Delphi heraus startet ;-).

Ansonsten: Solange alle Strings die gleiche Länge und den gleichen Aufbau haben, könntest du prüfen, ob die ersten beiden Ziffern eine Zahl ergeben im Bereich von ... bis ...

So ungefähr:

Delphi-Quellcode:
var
  i_tmp : integer
if (TryStrToInt(copy(eingelesener_string, 1, 2))) and (eingelesener_string[3] = '.') and (TryStrToInt(copy(eingelesener_string, 1, 2))) and {... usw ...}
für das Format : 'TT.MM.JJJJ' (z.B. '14.05.1992')

alcaeus 22. Mai 2005 11:18

Re: String = Datum Prüfen
 
Hallo Aljoscha,

in Delphi 7 gibt es die "TryStrTo..."-Funktionen. Dabei ist auch eine Delphi-Referenz durchsuchenTryStrToDate. Sie liefert true zurück, falls der String in ein Datum konvertiert werden kann.
Ich weiß nicht in welchen Delphi-Versionen die Funktion enthalten ist, viell. hilft es dir aber.

Greetz
alcaeus

Aljoscha 22. Mai 2005 11:33

Re: String = Datum Prüfen
 
Vielen Dank euch beiden.
Die Funktion TryStrToDate gibt es bei mir (Delphi 5 PE) leider nicht :(
Aber ich werde es weiter probieren :)

Aenogym 22. Mai 2005 11:49

Re: String = Datum Prüfen
 
hi aljosha,

du kannst die exception foglendermaßen abfangen:

Delphi-Quellcode:
const
  datum = '21.03.1988';
var
  TempDate: TDate;
begin
  try
    //versuchen, string umzuwandeln
    TempDate := StrToDate(datum);
  except
    //fallös eine EConvertError-Exception auftritt
    on E: EConvertError do
      //fehler melden
      ShowMessage(E.ClassName + #13#10 + E.Message);
end;
aenogym

Aljoscha 22. Mai 2005 12:46

Re: String = Datum Prüfen
 
Danke für die vielen Tips ich werde mal sehen wie weit ich komme :)
Das problem ist das es ein StringGrid ist und man mindestens eine Reihe haben muss, die aber oft leer ist :(


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:56 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