AGB  ·  Datenschutz  ·  Impressum  







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

String = Datum Prüfen

Ein Thema von Aljoscha · begonnen am 22. Mai 2005 · letzter Beitrag vom 22. Mai 2005
Antwort Antwort
Aljoscha

Registriert seit: 30. Dez 2004
97 Beiträge
 
#1

String = Datum Prüfen

  Alt 22. Mai 2005, 11:12
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
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
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#2

Re: String = Datum Prüfen

  Alt 22. Mai 2005, 11:17
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')
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#3

Re: String = Datum Prüfen

  Alt 22. Mai 2005, 11:18
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
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Aljoscha

Registriert seit: 30. Dez 2004
97 Beiträge
 
#4

Re: String = Datum Prüfen

  Alt 22. Mai 2005, 11:33
Vielen Dank euch beiden.
Die Funktion TryStrToDate gibt es bei mir (Delphi 5 PE) leider nicht
Aber ich werde es weiter probieren
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: String = Datum Prüfen

  Alt 22. Mai 2005, 11:49
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
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Aljoscha

Registriert seit: 30. Dez 2004
97 Beiträge
 
#6

Re: String = Datum Prüfen

  Alt 22. Mai 2005, 12:46
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
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:25 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