Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#7

AW: Hilfe!!! bei String, Array, und Records suchen

  Alt 4. Feb 2012, 16:57
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?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat