Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Ein String auf numerisch Testen (https://www.delphipraxis.net/78759-ein-string-auf-numerisch-testen.html)

Progger2005 10. Okt 2006 17:57


Ein String auf numerisch Testen
 
Hallo Leutz!

Ich übergebe mir aus einen EditFeld den Inhalt an eine Variable(integer). Durch StrToInt lasse ich es umwandeln...
Wenn man Zaheln eingibt alles schön und gut.. nur was wenn man plötzlich mal einen Buchstabe eingibt? -> Logischer weiße eine Fehler! Nun möchte ich vor dem Umwandeln testen ob im Textfeld nur Ziffern eingegeben wurden?? Wie geht das? Unter VB mit IsNumeric ... aber unter Delphi keine Ahnung? Gibt es etwas vorgefertigtes??


Danke Schonmal

MfG
Progger2005

Flare 10. Okt 2006 17:59

Re: Ein String auf numerisch Testen
 
Probiere es mal mit TryStrToInt!


Flare

Progger2005 10. Okt 2006 18:55

Re: Ein String auf numerisch Testen
 
Servus!

Ich habe es versucht jedoch ohne Ergebnis geblieben??
Ich will ja möglichst auch noch eine Ausgabe tätigen um den Benutze mitzuteilen was er falsch gemacht hat..

mkinzler 10. Okt 2006 19:07

Re: Ein String auf numerisch Testen
 
Zeig mal etwas Code, dann kann man die u.U. sagen, warum das gewünschte Ergebnis ausgeblieben ist.

Progger2005 10. Okt 2006 19:14

Re: Ein String auf numerisch Testen
 
Hier der CODE
Habe es jedoch mit TryStrToFloat gemacht...sollte ja aber trotzdem gehen..

Also ich will herausfiltern wenn ein Buchstabe eingegeben wurde...das da net gerechnet wird...
Delphi-Quellcode:
procedure Tmain.cmdBerechnenClick(Sender: TObject);
  var F,A,p:Real;
begin
  F:=TryStrToFloat(txtF.Text);
  A:=TryStrToFloat(txtA.Text);
  If A=0 Then
    //Ausgabe das Falsche Werte eingegeben wurden
    txtp.text:='Falsche Werte'
  Else
    begin
    //Weiterrechnen
    p:=F/A;
    txtp.Text:=FloatToStr(p);
    end;

end;

mkinzler 10. Okt 2006 19:21

Re: Ein String auf numerisch Testen
 
Du hast die Funktion falsch angewandt.
Als Rückgabewert erhälst du ein Boolean, der aussagt, ob die Konvertierung erfolgreich war. Den Wert erhälst du per var-Parameter.

Progger2005 10. Okt 2006 19:52

Re: Ein String auf numerisch Testen
 
Also um es mal darzulegen das Problem.
Delphi-Quellcode:
b:=TryStrToFloat(txtA.Text,A);
also:
b - boolean Wert
A- Float Wert


Hab ich das richtig verstanden?

mkinzler 10. Okt 2006 19:55

Re: Ein String auf numerisch Testen
 
Zitat:

Hab ich das richtig verstanden?
Ja.

also:

Delphi-Quellcode:
if not TryStrToFloat(txtF.Text, F) then
   //Ausgabe das Falsche Werte eingegeben wurden

Thanatos81 10. Okt 2006 19:59

Re: Ein String auf numerisch Testen
 
Ja, richtig. Man könnte es auch so machen:
Delphi-Quellcode:
procedure Tmain.cmdBerechnenClick(Sender: TObject);
var
  F, A: Real;
begin
  if TryStrToFloat(txtF.Text, F) and TryStrToFloat(txtA.Text, A) then
  begin
    //Weiterrechnen
    p := F/A;
    txtp.Text := FloatToStr(p);
  end
  else
    txtp.text := 'Falsche Werte'
end;
//Edit: Und denk dran A auf <> 0 zu überprüfen sonst gibt es evtl. ne nette Division durch null ;-)

mkinzler 10. Okt 2006 20:01

Re: Ein String auf numerisch Testen
 
Dann würde ich aber noch überprüfen, ob A <> 0 ist!


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:39 Uhr.
Seite 1 von 2  1 2      

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