Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String untersuchen... (https://www.delphipraxis.net/9673-string-untersuchen.html)

Praktikant 1. Okt 2003 14:57


String untersuchen...
 
Folgendes Problem:
Ein vom User eingegebener String (via editfeld) soll darauf untersucht werden, ob ein zweiter eingegebener String (editfeld) mehr als drei aufeinander folgender Zeichen gleich hat.
Bsp: edit1:='langerName'
edit2:='german'

In diesem Fall müsste das Programm anspringen, da in edit1 u. edit2 die zeichenfolge 'ger' verwendet wurde.

Habe es mal so gemacht, allerdings funktioniert das nur solange wie mein edit2 text kürzer als edit1 text ist.
Delphi-Quellcode:
//Nicht drei aufeinander folgende Zeichen aus dem Benutzernamen
StrBenutzer:=...;
if Pos(newstring, StrBenutzer) > 0 then
  //Suchen in Benutzername nach erstem gleichen eingegebenem Zeichen aus Kennwort(newstring)
if AnsiCompareText(TableBenutzerBenutzer.Text, StrBenutzer) <= 0 then //Wenn weitere identisch ungültiges Passwort
begin
  messagedlg('Aufeinander folgende Zeichen aus Benutzername sind nicht erlaubt.', mtInformation, [mbOk],0);
ClickedOK:=False;
end;

SirThornberry 1. Okt 2003 15:31

Re: String untersuchen...
 
hab das bissl probiert und bei meinen testfällen hats geklappt... Kann aber sein in dem Source is noch nen fehler oder sowas drin

Delphi-Quellcode:
function isdrin(bigone: String; littleone: String; mingleich: Integer; casesensitiv: Boolean = False): Boolean;
var wdh1: Integer;
begin
 if casesensitiv then
 begin
  bigone := lowercase(bigone);
  littleone := lowercase(littleone);
 end;

 result := False;
 wdh1 := 1;
 while (wdh1 + mingleich - 1 <= length(littleone)) and (result = False) do
 begin
  if pos(copy(littleone,wdh1, mingleich), bigone) > 0 then result := True;
  wdh1 := wdh1 + 1
 end;
end;

Praktikant 2. Okt 2003 07:44

Re: String untersuchen...
 
danke erstmal.
Nur hast Du da wohl was falsch verstanden.

Der Benutzer darf ja einen selben Buchstaben verwenden, nur ab drei gleich aufeinander folgenden soll Eingabe nicht akzeptiert werden.
Dabei kann der 2. string natürlich auch kürzer sein, sprich der string 2 liegt zwischen 3 und x Buchstaben (x wird immer unter 20 liegen).

Bsp.1:
edit1 eingegeben: Administrator
edit2 eingegeben: fussballtor
Nun soll proggi das 'tor' erkennen

Bsp.2:
edit1 eingegeben: Herbert
edit2 eingegeben: Heben

Nun soll proggi das 'he' und 'be' nicht anmeckern, erst ab 3en. gleichen Buchstaben.
Müsste allen klar sein wie ich es meine.

Wie mache ich es unabhängig vn der stringlänge?

PS: So ganz kapiert habe ich die source in obigem post nicht...

Luckie 2. Okt 2003 07:46

Re: String untersuchen...
 
Mal ein ungesteter Schnellschuß:
Delphi-Quellcode:
if (pos('beg', s1) > 0) and (pos('beg', s2) > 0) then
  ...;

Tom 2. Okt 2003 07:53

Re: String untersuchen...
 
PseudoCode:
Delphi-Quellcode:
Function ... (Str1, Str2: String):Boolean;
var
  i : integer;
  tmp : String;
begin
  Result := False;
  if ( length(Str1) < 3 ) or ( length(Str2) < 3 ) then exit; // nothing to do
  for i := 1 to Length( Str1 ) - 2 do
  begin
    Tmp := Copy( Str1, i, 3 );
    if pos( Tmp, Str2 ) > 0 then
    begin
      Result := True;
      Break;
    end;
  end;
end;

Praktikant 2. Okt 2003 09:29

Re: String untersuchen...
 
@lucki:
mir ist unklar welche string ich in die zwei Funktionen einsetzen soll/muss. Habe doch nur einen hauptstring welcher mit dem zweitstring überprüft werden soll.

@Tom:
irgendwie funktioniert dass nicht wirklich, entweder er meckert mir immer herum, oder er akzeptiert gleiche string.


Werd noch wahnsinnig mit der Funktion :wall:

Luckie 2. Okt 2003 09:32

Re: String untersuchen...
 
s1 und s2 sind die Strings, die du überprüfen willst umd 'beg' ist die zu untersuchende Zeichenfolge.

Praktikant 2. Okt 2003 09:33

Re: String untersuchen...
 
ich habe doch eine variable zeichenfolge die ich untersuchen will

Tom 2. Okt 2003 10:18

Re: String untersuchen...
 
Zitat:

Zitat von Praktikant
@Tom:
irgendwie funktioniert dass nicht wirklich, entweder er meckert mir immer herum, oder er akzeptiert gleiche string.

Nachdem ich den Source vorhin nur getippt habe, habe ich ihn jetzt getestet.

1) "Meckert rum" ist so ziemlich die sinnvollste Art der Wiedergabe einer Fehlermeldung.
2) Der Source tut es.
3) True wird zurückgegeben, wenn 3 Buchstaben identisch sind.
4) Es wird zwischen Groß- und Kleinschreibung unterschieden.

Praktikant 2. Okt 2003 10:38

Re: String untersuchen...
 
Zitat:

Zitat von Tom
Nachdem ich den Source vorhin nur getippt habe, habe ich ihn jetzt getestet.

1) "Meckert rum" ist so ziemlich die sinnvollste Art der Wiedergabe einer Fehlermeldung.
2) Der Source tut es.
3) True wird zurückgegeben, wenn 3 Buchstaben identisch sind.
4) Es wird zwischen Groß- und Kleinschreibung unterschieden.

1) Er bringt mir jedes mal meine messagebox, dass string aus benutzername benutzt zeichen. Irgendwie komsich, aheb auch boolen schon getauscht, aber dasselbe.
2) tut was :oops:
3) das klappt bei mir leider nicht, momentan bringt er es jedes mal.
4) ist ausnahmsweise mal klar :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 Uhr.
Seite 1 von 2  1 2      

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