Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Vergleiche (https://www.delphipraxis.net/3973-vergleiche.html)

illusion_ 9. Apr 2003 16:34


Vergleiche
 
Hallo!

Ich les zwei Strings ein, die zu Int konvertiert werden:

zahl1 := StrToInt(Edit1.Text);
zahl2 := StrToInt(Edit3.Text);

Nun moechte ich., dass man bei zahl1 bzw. zahl2 keine Buchstaben eingeben darf.

Hab jetzt mal ein array erstellet:

[snip]

TVokal = set of Char;
.
.
vokale := ['a'..'z'];

[snip]

und will dann vergleichen:

if zahl1 in vokale then


Er sagt mir, dass es inkompatible Formate sind(int und char), was ja auch stimmt ;)

Wie loese ich das am Besten? Gibts dafuer viell. ne bequeme Funktion? :) Soll ich den char zu int konvertieren? (komplizierter loesungsweg, oder?)

Danke im Vorraus :)

Daniel B 9. Apr 2003 16:48

Hallo und herzlich Willkommen im Forum!

Nun, es wäre einfacher einfach in den Edits erst recht keine Buchstaben zuzulassen, dann muss Du auch nichts mehr überprüfen, spart Arbeit und Zeit.
Siehe
hier wie man das macht.

Grüsse, Daniel :hi:

Fox007 9. Apr 2003 19:34

So gez auch

Code:
function IsStrANumber(const S: string): Boolean;
begin
  Result := True;
  try
    StrToInt(S);
  except
    Result := False;
  end;
end;

illusion_ 9. Apr 2003 22:20

Das ist ja einfach :)

Danke Euch beiden vielmals.

illusion_ 10. Apr 2003 11:15

Zitat:

Zitat von Fox007
So gez auch

Code:
function IsStrANumber(const S: string): Boolean;
begin
  Result := True;
  try
    StrToInt(S);
  except
    Result := False;
  end;
end;

Hallo!

Viell. kann mir ja nochmal jmd. helfen...Wenn ich den Code von oben nehm, bricht er an der Stelle " StrToInt(S); " ab sobald S: keine Zahl ist. Ist ja auch richtig so bloss soll ja keine Fehlermeldung kommen, sondern eben ein irgend ne Warnung etc....

oki 10. Apr 2003 11:23

Hi,

keine Panik! Die Fehlermeldung kommt nur im Debug-Modus. Durch den try except end Block hast du mit Aufruf der Exe keine Meldung mehr. Hier wird im Code ja mit Result := False auf das Exception-Ereignis reagiert und für die weitere Behandlung zur Laufzeit richtig verarbeitet.

Also mal bei Exception-Behandlung in der Hilfe reinschauen.

Gruß oki

illusion_ 10. Apr 2003 11:26

merci :coder:

:)

sakura 10. Apr 2003 11:41

Vorsicht, Du solltest Dir auch im Klaren sein, dass obiger Code auch XCA als Zahl anerkennt. Das kommt von der hexadezimalen Notation für 0xCA = 202

...:cat:...


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:01 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