AGB  ·  Datenschutz  ·  Impressum  







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

integer überprüfen

Ein Thema von Nisbo · begonnen am 11. Mär 2005 · letzter Beitrag vom 11. Mär 2005
Antwort Antwort
Nisbo

Registriert seit: 10. Mär 2005
191 Beiträge
 
Delphi 5 Standard
 
#1

integer überprüfen

  Alt 11. Mär 2005, 11:29
Moin Moin

Ich bastel gerade an einer Umwandlung der UNIX TimeStamp ins Normale Datum, das Funkioniert auch soweit ganz gut nur wenn der in Edit1 eigegebene Wert kein gültiger ingeger mehr ist dann Bekomme ich im programm die entsprechnde Fehlermeldung, möchte da aber gerne meine eigene Fehlermeldung ausgeben.

Bei Google habe ich bis jetzt noch nichts gefunden, ußer die Gültigkeitsbereiche aber das möchte ich ja gerne überprüfen

momentan schau das ganze so aus:

Delphi-Quellcode:
procedure TForm4.Button2Click(Sender: TObject);
var
  hh, mm, ss : cardinal;
  UnixZeit : integer;
  Ausgabe : integer;
  s : string;
  t : string;
  
const
  FirstOf1970 = 25569;

begin
   if Edit1.Text = 'then Edit1.Text := '0';

   UnixZeit := strtoint(Edit1.Text);

   if UnixZeit < 0 then
      begin UnixZeit := 0;
            Edit1.Text := '0';
      end;
      
   if UnixZeit > 2147483647 then
      begin UnixZeit := 2147483647;
            Edit1.Text := '2147483647'; // 2147483647
      end;
   
   hh := UnixZeit mod 86400;
   mm := hh mod 3600;
   hh := hh div 3600;
   ss := mm mod 60;
   mm := mm div 60;
   Ausgabe := (UnixZeit div 86400) + FirstOf1970;
   t := timetostr(EncodeTime(hh, mm, ss, 0));
   s := FormatDateTime('dddd", " dd. ' + 'mmmm yyyy "-" ' + t + ' "Uhr"',Ausgabe);
   Edit2.Text := s;
end;
das Problem wird wohl in

UnixZeit := strtoint(Edit1.Text);

liegen, also bei der Konvertierung

Hat jemand nen Tipp für mich ?
Jens
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

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

Re: integer überprüfen

  Alt 11. Mär 2005, 11:33
Hallo,

[oh]TryStrToInt, StrToIntDef[/oh] wären gute Stichworte für die OH. (Von der Forensuche ganz zu schweigen )

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Kiste
Kiste

Registriert seit: 10. Mär 2005
Ort: Papenburg
14 Beiträge
 
Delphi 7 Personal
 
#3

Re: integer überprüfen

  Alt 11. Mär 2005, 11:35
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
blubb:integer;
begin
  try blubb:=StrToInt(edit1.text) except
    showmessage('blah');
  end;
end;
Funktioniert

Allerdings bekommste, solang du im debugger bist, erst die Fehlermeldung, dass es kin gueltiger Integer wert is... Wenne net mehr im Debugger bsit bekomsmte einfach nurnoch 'blah' ...

mfg Kiste
(+PeRLe) guckt euch das an......kist3 owned wieder back 2 the roots quasi
  Mit Zitat antworten Zitat
Nisbo

Registriert seit: 10. Mär 2005
191 Beiträge
 
Delphi 5 Standard
 
#4

Re: integer überprüfen

  Alt 11. Mär 2005, 11:47
@ alcaeus

schicke mir mal dein Delphi dann schaue ich auch in dei OH rein, habe doch Lazarus
gesucht habe ich bereits:

invalid integer 2147483647 pascal
integer überprüfen pascal

hatte ja nix gebracht

Kiste's Lösung war der Schlüssel wie ich es jetzt gelöst habe

Delphi-Quellcode:
procedure TForm4.Button2Click(Sender: TObject);
var
  hh, mm, ss : cardinal;
  UnixZeit : integer;
  Ausgabe : integer;
  s : string;
  t : string;
  
const
  FirstOf1970 = 25569;

begin
   if Edit1.Text = 'then Edit1.Text := '0';

   try
      UnixZeit := strtoint(Edit1.Text);
   except
      ShowMessage('Hier darf nur eine gültige UNIX-TimeStamp eingegeben werden!');
      Edit1.SetFocus;
      UnixZeit := 0;
   end;

   if UnixZeit < 0 then
      begin
           ShowMessage('Hier darf nur eine gültige UNIX-TimeStamp eingegeben werden!');
           UnixZeit := 0;
           Edit1.SetFocus;
      end;
   
   hh := UnixZeit mod 86400;
   mm := hh mod 3600;
   hh := hh div 3600;
   ss := mm mod 60;
   mm := mm div 60;
   Ausgabe := (UnixZeit div 86400) + FirstOf1970;
   t := timetostr(EncodeTime(hh, mm, ss, 0));
   s := FormatDateTime('dddd", " dd. ' + 'mmmm yyyy "-" ' + t + ' "Uhr"',Ausgabe);
   Edit2.Text := s;
end;
vielen Dank für die Hilfe
Jens
  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 15:15 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