String Abfrage im Form Editor

Alle Fragen und Antworten rund um ACMP Version 3.x
Antworten
jvoltenauer
Beiträge: 10
Registriert: Do Mär 31, 2011 2:15 pm

Guten Tag,

ich versuche im Form Editor Quellcode bei einer Passworteingabe den PasswortString darauf zu untersuchen, ob er mindestens ein Großbuchstabe enthält und das Passwort 8 zeichen lang ist.

String-Länge ist kein Problem length(string), aber wie ermittle ich, dass z.B. mindesten ein Großbuchstaben eingeben wurde.
AnsiMatchStr(string,[...]) funktioniert nicht.

Bin für jeden Hinweis dankbar, da ich mich mit Delphi nicht auskenne.

Grüße
Jürgen V.
ulange

Sehr geehrter Herr Voltenauer,

dies läßt sich gut mit AnsiLowerCase realisieren.
Basteln Sie sich eine Function, z.B.

function IsAllLower(ansiStr: String): Boolean;
begin
result := (AnsiLowerCase(ansiStr) = ansiStr);
end;

und benutzen Sie diese z.B. so:

if IsAllLower('abcdÄefg') then
begin
...
end
else
begin
end;

Uwe Lange
Aagon Consulting
jvoltenauer
Beiträge: 10
Registriert: Do Mär 31, 2011 2:15 pm

Hallo Hr. Lange,

vielen Dank, die Function habe ich ähnlich implementiert und funktioniert sehr gut.

Haben sie mir noch einen Tip, wie ich nun auch noch prüfen kann, ob zudem eine Zahl und ein Sonderzeichen (z.B. $,%,&) enthalten ist.

Viele Grüße
Jürgen V.
ulange

Sehr geehrter Herr Voltenauer,

durchlaufen Sie den Passwortstring in einer Schleife und stellen Sie
fest ob eines der gefundenen Zeichen Ihren Anforderungen entspricht

z.B.
var HatZahl : boolean;
var HatSonderzeichen : boolean;

HatZahl := false;
HatSonderzeichen:=false;
for i := 1 to length(passwort) do
begin
if passwort in ['0'..'9'] then
HatZahl:=true;
if passwort in ['Sonderzeichen'..'Sonderzeichen'] then
HatSonderzeichen:=true;
end;

If HatZahl then ...
usw.


Mit freundlichen Grüßen
Uwe Lange
jvoltenauer
Beiträge: 10
Registriert: Do Mär 31, 2011 2:15 pm

Hallo Hr. Lange,

ich bekomme aber im Form Editor bei der Zeile:
If sPasswort in ['A'..'Z'] Then

einen Syntax Error angezeigt, und zwar für das "in".

Gruß
Jürgen V.
ulange

Sehr geehrte Herr Voltenauer,

die Angabe als Range ist Delphi pur, schade funktioniert im Formeditor nicht.
Müssen Sie dann leider jeden Wert einzeln eintragen.

If (pw = '0') or (pw = '1') or (pw = '2') usw. then ..
jvoltenauer
Beiträge: 10
Registriert: Do Mär 31, 2011 2:15 pm

Hallo Hr. Lange,

das hatte ich schon befürchtet ;-)

Vielen Dank für ihre Hilfe & Grüße
Jürgen V.
Antworten