AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi bei String, Array, und Records suchen
Thema durchsuchen
Ansicht
Themen-Optionen

bei String, Array, und Records suchen

Ein Thema von Dennis_Wolfram · begonnen am 4. Feb 2012 · letzter Beitrag vom 4. Feb 2012
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

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

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

  Alt 4. Feb 2012, 14:32
Ein paar Ratschläge: schmeiß die globalen Variablen weg, ebenso das Array. Statt des Arrays würde ich Dir, da Du ja laut Profil D2010 verwendest, zu einer generischen Liste raten, die wächst und schrumpft dynamisch. Dann würde ich den Vergleich nicht mit Uppercase machen, sondern mit AnsiSameText für den Benutzernamen und AnsiSameString für das Kennwort, da bei Letzterem ja wohl Groß- und Kleinschreibung schon eine Rolle spielen sollten. Und wieso benutzt Du nicht die vordefinierten sprechenden Konstanten, die machen den Code doch viel besser lesbar, und das ganz ohne Kommentare? Passend dazu solltest Du Deine Komponenten auch mal sprechend benennen, oder schaust Du jedesmal nach, welchen Sinn Edit465 hat?
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
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.876 Beiträge
 
Delphi 11 Alexandria
 
#2

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

  Alt 4. Feb 2012, 14:33
Oder noch besser mit regulären Ausdrücken arbeiten, so kann man eine Ähnlichkeitssuche anstatt einer Such nach exakten Gliechheit durchführen.
Markus Kinzler
  Mit Zitat antworten Zitat
Dennis_Wolfram

Registriert seit: 8. Dez 2007
Ort: Berlin & Augsburg
29 Beiträge
 
Delphi 2010 Enterprise
 
#3

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

  Alt 4. Feb 2012, 14:47
Ok??? Leider hab ich von generischen Liste oder der Ähnlichkeitssuche gehört. Werd mal das DP durchsuchen .Könntet ihr das mal an einem Beispiel erklären? Ich kann das nicht für mich umsetzten. Danke auch dafür LG Dennis
Dennis Wolfram

Geändert von Dennis_Wolfram ( 4. Feb 2012 um 14:49 Uhr)
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#4

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

  Alt 4. Feb 2012, 14:55
Wie wär‘s mit einer From3.DatenBasis.IndexOf(const User, Passwort: string): integer; ?

Besser, ein Klasse TBenutzerClass, die Zufriff auf die Datenbasis hat und über eine solche Methode verfügt.
  Mit Zitat antworten Zitat
Dennis_Wolfram

Registriert seit: 8. Dez 2007
Ort: Berlin & Augsburg
29 Beiträge
 
Delphi 2010 Enterprise
 
#5

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

  Alt 4. Feb 2012, 14:58
Leider bin ich jetzt TOTAL überfodert.. hab mal das DP durch gesucht, aber nix verständliches gefunden. Hat mal jemand zufällig ne Anleitung für Dummies ?
Danke Dennis
Dennis Wolfram
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

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

  Alt 4. Feb 2012, 15: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
Dennis_Wolfram

Registriert seit: 8. Dez 2007
Ort: Berlin & Augsburg
29 Beiträge
 
Delphi 2010 Enterprise
 
#7

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

  Alt 4. Feb 2012, 17:09
Ich stell mich heute wieder an - ich weiß aber wie soll ich dann diese Funktion über eine Procedur aufrufen können(Button1Click)??? Weil so wird Sie ja sonst nicht beim Ausführen verwendet. LG Dennis
Dennis Wolfram
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

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

  Alt 4. Feb 2012, 17:22
Na, wie jede "normale" Funktion auch:
Delphi-Quellcode:
aName := edtName.Text;
aPasswort := edtPasswort.Text;
if PersonInList(aName, aPasswort) then
  LoggedIn := true
else
  MessageBox(Handle, 'Benutzer unbekannt oder falsches Passwort', 'Fehler beim Login', MB_OK or MB_ICONERROR);
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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz