tal kontrol?

Tags:    delphi

Hej ville høre om der var en nem måde at kontrollere om en streng kun indeholder tal?





8 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Rigtigt. Men det er nemt at tjekke om der er - eller + i starten, og for den sags skyld også om det er hex.
Det går an på hvad han skal bruge det til. Jeg gav ham blot et simpelt alternativ, som ikke benytter exceptions på den måde som du gør, hvilket jo af nogle vil betegnes som fy fy. Ikke at jeg ikke kan finde på at bruge din metode (Hvis du ikke havde forslået den havde jeg ;)), men man kan da give et alternativ.

btw. findes der en parser til regulære udtryk i delphi/pascal? Den kunne være brugbar i et tilfælde som denne og mange andre.



Der findes sikkert et regex unit til delphi et sted men jeg har ikke set et. Der følger dog et med til Freepascal. Hvis du henter sourcen ligger den også der ucompilet



Hvad med :
TryStrTo...
f.eks:
if TryStrToFloat(txt) or TryStrToInt(txt) then
// Yes this is a number



Den her bruger jeg:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in [#8, '0'..'9']) then begin
ShowMessage('Du kan kun skrive tal');
Key := #0;
end;
end;



Fold kodeboks ind/udKode 


Ikke en køn eller særlig smart metode, men nem :)



En noget kønnere måde: (Den bruger i hvert fald ikke exceptions ;))

Fold kodeboks ind/udKode 




Peter, din metode tager ikke højde for minus og hex numre



Hvis du ville bruge strengen fra en TEdit, kunne du altid bruge ES_NUMBER.



t