Ehrlich gesagt verstehe ich im Moment auch nicht, wie uns hier eine Ähnlichkeitssuche weiterhelfen sollte. Entweder Benutzername und Passwort sind korrekt oder eben nicht, man kann ja nicht "so ähnlich" eingeloggt werden. Zur Liste:
Delphi-Quellcode:
uses ..., Generics.Collections;
type
TPerson = record
Name,
Passwort: ShortString;
end;
TPersonenListe = TList<TPerson>; //generische Liste mit TPerson-Elementen
TForm1 = class(TForm)
...
private
{ Private-Deklarationen }
FPersonen: TPersonenListe;
function PersonInList(const AName, APW: ShortString): Boolean;
...
end;
...
procedure TForm1.FormCreate(Sender: TObject);
var
Person: TPerson;
begin
//Erzeugen der Liste
FPersonen := TPersonenListe.Create;
//Einfügen von 3 Personen (testhalber)
Person.Name := 'Heinz';
Person.Passwort := '123';
FPersonen.Add(Person);
Person.Name := 'Hans';
Person.Passwort := '234';
FPersonen.Add(Person);
Person.Name := 'Adalbert';
Person.Passwort := 'Rubbeldikatz';
FPersonen.Add(Person);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
//Liste wieder freigeben
FPersonen.Free;
end;
(* Ermitteln, ob eine Person mit der angegebenen Namens-Passwort-Kombination
vorhanden ist. Beim Namen wird case-insensitive verglichen, beim Passwort nicht. *)
function TForm1.PersonInList(const AName, APW: ShortString): Boolean;
var
Person: TPerson;
begin
Result := false;
for Person in FPersonen do
begin
Result := AnsiSameText(string(Person.Name), string(AName))
and AnsiSameStr(string(Person.Passwort), string(APW));
if Result then
break;
end;
end;
Hilft Dir das erstmal weiter?