Sprawdzanie daty

  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
function isDate ( const DateString: string ): String;
begin
  try
    StrToDate ( DateString );
    result := 't';
  except
    result := 'n';
  end;
end;

.........gdzieś tam dalej.......

if isDate(sgTab.Cells[0,i]) = 'n' then
            sgTab.Cells[0,i] := DateToStr(date);

Dlaczego wywala mi błąd:
Project Project1.exe raised exception class ECon... message "08:73" is not a valid time....

Co jest źle? Jak inaczej sprawdzać?

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0
Kopiuj
TryStrToDate
pelsta
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 819
0
luvex napisał(a)

Dlaczego wywala mi błąd:
Project Project1.exe raised exception class ECon... message "08:73" is not a valid time....

  1. Błąd wywala gdy uruchamiasz program z poziomu Delphi? Masz więc zaznaczoną opcję Stop on Delphi Exceptions w opcjach Debuggera.
  2. Proponuję zmienić typ funkcji isDate na Boolean.
  3. Należy rozróżniać funkcje StrToDate i StrToTime.
KD
  • Rejestracja: dni
  • Ostatnio: dni
0

to moze inaczej

function isDate ( const DateString: string ): String;
var
TdateTime : lol;
begin
try
lol := StrToDate ( DateString );
result := 't';
except
result := 'n';
end;
end;

olesio
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
  • Postów: 4191
0

A nie lepiej przy tego typu zwracanych przez funkcję wartościach użyć typu boolean i mieć True albo False?

olesio
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
  • Postów: 4191
0

A nie lepiej przy tego typu zwracanych przez funkcję wartościach użyć typu boolean i mieć True albo False?
Btw, jakieś dzieci neo ddosują forum i cały serwis, bo wszystko teraz tutaj chodzi jakby chciało, a nie mogło.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.