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]