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 wenn keine zahl, dann...? (https://www.delphipraxis.net/23380-wenn-keine-zahl-dann.html)

herrentor 2. Jun 2004 09:36


wenn keine zahl, dann...?
 
guten morgen.

ich wüsste gerne, wie die bezeichnung für zahl ist? wenn zelle ungleich zahl dann...

Code:

if (Form1.Tab.Cells[3,i] <> real) or
      (Form1.Tab.Cells[4,i] <> real) then

    begin
     ShowMessage('  Sie müssen noch Werte eingeben!   ');    
     exit                                                      
    end;
danke im voraus.

MrSpock 2. Jun 2004 09:49

Re: wenn keine zahl, dann...?
 
Hallo herrentor,

ich meine ich hätte mal die Funktion IsNumber gesehen, habe sie aber gerade in der OH nicht gefunden.

Alternativ kannst du folgendes machen:

Delphi-Quellcode:
try
  wert := StrToFloat(Form1.Tab.Cells[4,i]);
except
  on exception do
  begin
  { ist keine Zahl }
  end
end

herrentor 2. Jun 2004 10:02

Re: wenn keine zahl, dann...?
 
wie soll ich denn {ist keine zahl} ausdrücken?

MrSpock 2. Jun 2004 10:06

Re: wenn keine zahl, dann...?
 
Hallo herrentor,

z.B. so:

Delphi-Quellcode:
function isNumber(str: String; var number: Extended): Boolen;
var
  wert : Extended;
begin
  Result := True;
  try
    wert := StrToFloat(str);
    number := wert;
  except
    on exception do
    begin
      Result := False;
    end
  end
end;

Smokey 2. Jun 2004 10:11

Re: wenn keine zahl, dann...?
 
Wenn du Delphi7 hast, schau in der Hilfe mal nach

TryStrToInt,
TryStrToFloat

das würde dir die Exception sparen.
die Funktion Val kann dir das auch ersparen, hat aber Probleme mit ein paar strings die als Zahl erkannt werden

StefanDP 2. Jun 2004 10:19

Re: wenn keine zahl, dann...?
 
Ich würde ehrlichgesagt keine try...except machen, weil man das nur im "notfall" anwenden sollte!
eine elegantere lösung wäre:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  code: Integer;
  was: Real;
  text: String;
begin
  text := '3.141592';    // entspricht deinem ...cells[x,y]
  val(text, was, code);  // wenn "text" eine Real-Var ("was") ist
                          // wird in "code" der wert 0 zurückgegeben
                          // sonst wird "irgend was anderes" ausgegeben
  if (code = 0) then
    ShowMessage('Ist eine Zahl')
  else
    ShowMessage('Ist keine Zahl');
end;
stefan

Smokey 2. Jun 2004 10:37

Re: wenn keine zahl, dann...?
 
joa wie oben schon gesagt, Val ist ne möglichkeit ABER : setzt mal dein Val auf den String 'XC' an.
Dann weisst du, was ich mit "problematisch" meinte

StefanDP 2. Jun 2004 10:42

Re: wenn keine zahl, dann...?
 
Zitat:

Zitat von Smokey
joa wie oben schon gesagt, Val ist ne möglichkeit ABER : setzt mal dein Val auf den String 'XC' an.
Dann weisst du, was ich mit "problematisch" meinte

schon, aber dass da genau "XC" drin steht ist auch relativ unwahrscheinlich

Kevin 2. Jun 2004 10:47

Re: wenn keine zahl, dann...?
 
Aber sollte man als Programmierer nicht grade auf das Unwahrscheinliche vorbereitet sein...?! :zwinker:

StefanDP 2. Jun 2004 11:02

Re: wenn keine zahl, dann...?
 
das "XC" problem kommt aber nur bei var(...,integer,...) vor!
im oberen beispiel ist es aber eine real variable! Da wird es nicht falsch also richtig erkannt. :witch:

stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:33 Uhr.
Seite 1 von 2  1 2      

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