AGB  ·  Datenschutz  ·  Impressum  







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

trystrtodatetime

Ein Thema von Dreas · begonnen am 21. Aug 2004 · letzter Beitrag vom 23. Aug 2004
Antwort Antwort
Dreas

Registriert seit: 7. Nov 2003
17 Beiträge
 
#1

trystrtodatetime

  Alt 21. Aug 2004, 17:40
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:
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;
Hab ich da den total falschen Ansatz?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: trystrtodatetime

  Alt 21. Aug 2004, 18:01
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');
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
paelesoft

Registriert seit: 3. Jul 2004
37 Beiträge
 
Delphi 7 Professional
 
#3

Re: trystrtodatetime

  Alt 21. Aug 2004, 18:12
TryStrToDateTime ist schon vom Typ Boolean und braucht in Pascal und C nicht
mit dem Wert "False" oder "True" gegengeprüft werden:

if TryStrToDateTime(a) = False then ... ist also

if not TryStrToDateTime(a) then Weiterhin wird beim Prüfen auf Gleichheit in Pascal(Delphi) das "=" Zeichen verwendet.
Das Zeichen ":=" dagegen ist eine Zuweisung z.B.:

a := 5 Danach hat "a" also den Wert "5"
Gruß Erik
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: trystrtodatetime

  Alt 21. Aug 2004, 18:14
Zitat von paelesoft:
TryStrToDateTime ist schon vom Typ Boolean und braucht in Pascal und C nicht
mit dem Wert "False" oder "True" gegengeprüft werden:
Das ist aber nicht sein Problem. Die Parameter stimmen einfach nicht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
paelesoft

Registriert seit: 3. Jul 2004
37 Beiträge
 
Delphi 7 Professional
 
#5

Re: trystrtodatetime

  Alt 21. Aug 2004, 18:16
Ja, geht auch mit Prüfen auf "False". Aber ":=" ist garantiert ein Problem!
Gruß Erik
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: trystrtodatetime

  Alt 21. Aug 2004, 18:17
Das auch.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
paelesoft

Registriert seit: 3. Jul 2004
37 Beiträge
 
Delphi 7 Professional
 
#7

Re: trystrtodatetime

  Alt 21. Aug 2004, 18:23
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;
????
Gruß Erik
  Mit Zitat antworten Zitat
Dreas

Registriert seit: 7. Nov 2003
17 Beiträge
 
#8

Re: trystrtodatetime

  Alt 21. Aug 2004, 18:40
Hi,

Habs hinbekommen.

Das mit := war echt blöd.

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.
  Mit Zitat antworten Zitat
paelesoft

Registriert seit: 3. Jul 2004
37 Beiträge
 
Delphi 7 Professional
 
#9

Re: trystrtodatetime

  Alt 22. Aug 2004, 16:24
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)
Gruß Erik
  Mit Zitat antworten Zitat
Dreas

Registriert seit: 7. Nov 2003
17 Beiträge
 
#10

Re: trystrtodatetime

  Alt 23. Aug 2004, 22:05
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!
  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 20:27 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