Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ist String eine gültige Zahl?" (https://www.delphipraxis.net/13319-ist-string-eine-gueltige-zahl.html)

sakura 16. Dez 2003 10:48

Re: Ist String eine gültige Zahl?"
 
Wenn Du Val nicht willst (Achtung: bei Vall ist XC auch eine Zahl :!: ) dann:
Delphi-Quellcode:
function IsInt(s: string): boolean;
var
  I: Integer;
begin
  for i := 0 to length(s) do
    if not (StrToInt(s[i]) in [0..9]) then
    begin
      result := False;
      Exit;
    end;
  Result := True;
end;
...:cat:...

Pseudemys Nelsoni 16. Dez 2003 10:52

Re: Ist String eine gültige Zahl?"
 
thX sakrua ^^

Tom 16. Dez 2003 10:52

Re: Ist String eine gültige Zahl?"
 
Zitat:

Zitat von Pseudemys Nelsoni
ja.

Aha. Da steht doch drin wofür der 3. Parameter von Val gut ist.


Zitat:

dann wird: result := false;
Vielleicht. Andererseits
Code:
---------------------------
Project1
---------------------------
Fehler bei Bereichsprüfung.
---------------------------
OK  
---------------------------

Pseudemys Nelsoni 16. Dez 2003 11:06

Re: Ist String eine gültige Zahl?"
 
wieso vielleicht?

Delphi-Quellcode:
      if not (StrToInt(s[i]) in [0..9]) then
      result := false;
wenn s[i] nicht in 0-9 ist dann result := false;. oder nicht :cyclops:


sakura: liegt dieser fehler an der "isint"-funktion?

http://www.angelfire.com/bug/delphi/fehler2.jpg

meine procedure sieht so aus:

Delphi-Quellcode:
  if word(2, s) = 'intervall' then
  begin
    if isint(word(3, s)) then      // die zeile wird beim fehler markiert
    begin
      Form1.Timer1.Interval := StrToInt(word(3, s) + '000');
      Form1.IdIRC1.Say(chan, '14¤03¤09¤ Automatische Antwort wurde auf ' + word(3, s) + ' 09Sekunden gestellt');
    end
    else
    Form1.IdIRC1.Say(chan, '14¤05¤04¤ ' + word(3, s) + ' 04ist keine gültige Zahl');
  end;

die function "word" gibt das wort des index's zurück, also bei 3 ist das wort 3 und in diesem fall war das dritte wort "5" also 5 sekunden

Smokey 16. Dez 2003 11:09

Re: Ist String eine gültige Zahl?"
 
Problem bei StrToInt ist halt, dass er ne Exception schmeisst, was bei VAL nicht der Fall ist, weil dir der zweite Integerwert eben angibt ob ein Fehler aufgetreten ist.

Daher würde ich entweder die Exception abfangen, doch einfach VAL benutzen, oder aber den Code ohne StrToInt machen indem du einfach auf Strings prüfst :

Code:
function IsInt(s: string): boolean;
var
  I: Integer;
begin
  for i := 0 to length(s) do
    [color=red]if not (s[i] in ['0'..'9']) then[/color]
    begin
      result := False;
      Exit;
    end;
  Result := True;
end;
Allerdings bin ich trotz allem ein Verfechter von VAL oder Exception abfangen :lol:

Pseudemys Nelsoni 16. Dez 2003 11:10

Re: Ist String eine gültige Zahl?"
 
hat sich erledigt ^^ die laufvariable musste bei 1 beginnen.

danke an alle

Tom 16. Dez 2003 11:11

Re: Ist String eine gültige Zahl?"
 
Zitat:

Zitat von Pseudemys Nelsoni
wieso vielleicht?

Weil vorher der Flieger kommt ...
Delphi-Quellcode:
      if not (StrToInt(s[i]) in [0..9]) then ShowMessage( 'dkdkd' );
Oder siehst Du die Message noch?

Pseudemys Nelsoni 16. Dez 2003 11:14

Re: Ist String eine gültige Zahl?"
 
ach, jetzt weiss ich was du meinst, wegen dem strtoint, jo stimmt. nicht dran gedacht :zwinker: danke


@smoke, habe die zeile übernommen, danke :zwinker:

sakura 16. Dez 2003 11:18

Re: Ist String eine gültige Zahl?"
 
Sorry für die Copy&Waste Error :oops:

...:cat:...


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

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