Einzelnen Beitrag anzeigen

Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#1

Isalpha, IsNum, IsString als eine Funktion

  Alt 3. Apr 2009, 08:33
Hallo,
ich habe mal Isalpha, IsNum, IsString als eine Funktion ausgeführt, die bei einem Aufruf mit einem String mit Ziffern eine 1, bei Zeichen eine 2 und bei Ziffern und Zeichen eine 3 liefert.
Code als Consolenprogramm:
Delphi-Quellcode:
program TestCheckStr;
{$APPTYPE CONSOLE}
uses SysUtils;

function CheckStr(Str:string):Byte;
var i:Integer;
type typ=set of Char;

var Ziffern:typ;
var Zeichen:typ;

var ZiffernFlag: Boolean;
var ZeichenFlag: Boolean;
var AlphaNumFlag: Boolean;
label ende;
begin
// "Fehlerbehandlung"
If Str=''then begin Result:=0;goto ende;end;

// Hauptteil
Ziffern:=['0'..'9'];
Zeichen:=['a'..'z','A'..'Z'];

ZiffernFlag:=False;
ZeichenFlag:=False;
AlphaNumFlag:=False;

for i:=1 to Length(Str) do
   begin
   if str[i] in Ziffern then ZiffernFlag :=True;
   if str[i] in Zeichen then ZeichenFlag:=True;
   end;
if Zeichenflag =True and ZiffernFlag=True then
   begin
   result:=3; //AlphaNum
   goto ende;
   end;
if ZiffernFlag=True then Result:=1; //Ziffern
if ZeichenFlag=True then Result:=2; //Zeichen
ende:
end;
begin
//Zum Testen:
Writeln('Leerer String ',checkstr(''));readln; //Ergebnis ist 0
Writeln('Ziffer - 1: ',checkstr('190'));readln; //Ergebnis ist 1
Writeln('Zeichen - 2: ',checkstr('az'));readln; //Ergebnis ist 2
Writeln('AlphaNum - 3: ',checkstr('az10'));readln; //Ergebnis ist 3
end.
Geht es noch besser? Ich glaube es ist eine umständliche Lösung.
[Edit: u. a. Titel geändert]
  Mit Zitat antworten Zitat