Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Buchstaben und andere Zeichen erkennen (https://www.delphipraxis.net/136888-buchstaben-und-andere-zeichen-erkennen.html)

emsländer 9. Jul 2009 15:05


Buchstaben und andere Zeichen erkennen
 
Moin,

in einem String dürfen NUR Zahlen stehen. Wenn dort Buchstaben eingegeben worden sind, muss ich das erkennen.

also in der Form:

if found('abcdef....öäl/bla') dann ROTLICHT!

wie kann man das auf die Schnelle bewerkstelligen?


Nein - ich kann keine num. Var nehmen, da die Daten aus einer DB kommen

Gruss

EL

Aphton 9. Jul 2009 15:10

Re: Buchstaben und andere Zeichen erkennen
 
Überprüf doch alle einzelnen Charakter eines Strings.
Schau, ob ein Char. sich im set ( '0'..'9' ) nicht befindet!?

MfG

BrunoT 9. Jul 2009 15:12

Re: Buchstaben und andere Zeichen erkennen
 
Hallo emsländer

Delphi-Quellcode:
s:string;
i:Integer;

Begin

for i:=1 to Length(s) do
Begin
  if s[i] NOT in ['0'..'9'] then
   fehler;
end;
oder

Delphi-Quellcode:
if StrToIntDef(s,0)=0 then
fehler;
Da war einer schneller :gruebel:


mfg

Holger

emsländer 9. Jul 2009 15:15

Re: Buchstaben und andere Zeichen erkennen
 
Zitat:

Zitat von BrunoT
Hallo emsländer

Delphi-Quellcode:
s:string;
i:Integer;

Begin

for i:=1 to Length(s) do
Begin
  if s[i] NOT in ['0'..'9'] then
   fehler;
end;
oder

Delphi-Quellcode:
if StrToIntDef(s,0)=0 then
fehler;
Da war einer schneller :gruebel:


mfg

Holger


Danke!

Aphton 9. Jul 2009 15:17

Re: Buchstaben und andere Zeichen erkennen
 
BrunoT - so ( S[i] NOT in .. ) wird das nicht funzen - Syntax Fehler.

Delphi-Quellcode:
function CharInStr( Str: String ): Cardinal;
var
  i: Integer;
begin
  Result := 0;
  for i := 1 to Length(Str) do
    if not( Str[i] in ['0'..'9'] ) then
    begin
      Result := i;
      Exit;
    end;
end;
Diese Funktion liefert dir, falls sich ein Zeichen, das <> '0'..'9' ist, im Übergabeparameter befindet, ihren Index; ansonsten 0.

Konkret:

Code:
var x: Cardinal;

x := CharInStr( '12379A' );
x wäre 6

x := CharInStr( '123790' );
x wäre 0

BrunoT 9. Jul 2009 15:22

Re: Buchstaben und andere Zeichen erkennen
 
Hallo Aphton,

du hast ja recht, das war quick 'n durty, sorry

Holger

emsländer 9. Jul 2009 15:34

Re: Buchstaben und andere Zeichen erkennen
 
Zitat:

Zitat von BrunoT
Hallo Aphton,

du hast ja recht, das war quick 'n durty, sorry

Holger

der hier

if StrToIntDef(s,0)=0 then
fehler;

reichte vollkommen!

Danke

Gruss

EL

Namenloser 9. Jul 2009 15:53

Re: Buchstaben und andere Zeichen erkennen
 
Zitat:

Zitat von emsländer
if StrToIntDef(s,0)=0 then
fehler;

reichte vollkommen!

Und was machst du, wenn in s '0' steht? Dann gibt dieser Code auch einen Fehler aus.

Sharky 10. Jul 2009 10:44

Re: Buchstaben und andere Zeichen erkennen
 
Gab es in Pascal nicht den Befehl Delphi-Referenz durchsuchenVAL? :stupid:

Muetze1 10. Jul 2009 10:46

Re: Buchstaben und andere Zeichen erkennen
 
Delphi-Referenz durchsuchenTryStrToInt()

TheMiller 10. Jul 2009 11:08

Re: Buchstaben und andere Zeichen erkennen
 
Hallo, habe jetzt nicht alles aus diesen Thread gelesen. Aber für dein Vorhaben scheinen doch die RegularExpressions geradezu prädestiniert zu sein.

Wirf mal einen Blick in die Hilfe/Syntax. Nach wenigen Minuten Einarbeitungszeit, dürften schon einfache Fälle recht schnell zu lösen sein :wink:

Hoffe, ich konnte dir helfen.


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