Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Ähnlichkeiten im String suchen??? (https://www.delphipraxis.net/154666-aehnlichkeiten-im-string-suchen.html)

romber 20. Sep 2010 14:58

Delphi-Version: 5

Ähnlichkeiten im String suchen???
 
Hallo!

Ich habe einen String, in dem ich eine Zeichenkette finden muss. Genauer gesagt prüfen, on sich die Zeichenkette im String befindet, auch wenn diese falsch geschrieben ist.

Z.B. habe ich einen String: LED TV Samsung UE55C9090 Schwarz + Alu

Nun muss ich prüfen, ob Zeichenkette UE55C9090 in diesem String befinden. Und auch wenn im String z.B. UE 55C9090 oder UE55C-9090 oder UE-55C/9090 oder UE 55 C 90 90 oder noch etwas ähnliches steht, muss die Funktion ein positives Ergebnis liefer.

Wie realisiere ich so eine Suchfunktion?

Neutral General 20. Sep 2010 15:02

AW: Ähnlichkeiten im String suchen???
 
Hallo,

Ich denke für soetwas sind reguläre Ausdrücke am besten geeignet.

Gruß
Neutral General

mkinzler 20. Sep 2010 15:02

AW: Ähnlichkeiten im String suchen???
 
Dazu gibt es verschiedenen String-Bewertungsverfahren wie Soundex oder Levensthein

himitsu 20. Sep 2010 15:12

AW: Ähnlichkeiten im String suchen???
 
Bei deinen Beispielen würde es auch reichen, wenn man alle Sonderzeichen (alles außer Buchstaben und Zahlen) "rauslöscht" und dann nur noch in diesem sucht.

Bummi 20. Sep 2010 15:23

AW: Ähnlichkeiten im String suchen???
 
vielleicht willst Da das fertig basteln?

Delphi-Quellcode:
Function InString(search,S:String):Boolean;
var
  i:Integer;
  buffer:String;
begin
  S := UpperCase(s);
  search := Uppercase(search);
  for I := 1 to Length(S) do
      if not (S[i] in [#0..#32,'.','/','-']) then buffer := buffer + s[i];
  Result := Pos(search , Buffer) > 0;
end;

Meflin 20. Sep 2010 15:24

AW: Ähnlichkeiten im String suchen???
 
Zitat:

Zitat von Neutral General (Beitrag 1050792)
Ich denke für soetwas sind reguläre Ausdrücke am besten geeignet.

Ich gehe doch davon aus dass es sich nur um einen Beispielstring handelte und nicht den einzig fraglichen. Insofern würde mich doch interessieren, wie du da was mit regulären Ausdrücken hinbekommen willst :gruebel:

Neutral General 20. Sep 2010 15:28

AW: Ähnlichkeiten im String suchen???
 
Naja, sowas wie Bummi da oben gebaut hat, kann man auch mit RegExen machen z.B.

stahli 20. Sep 2010 16:05

AW: Ähnlichkeiten im String suchen???
 
Ich habe hier früher mal etwas ähnliches entwickelt. Da ging es aber eher um das Vergleichen von Adressen.
Dabei ist die Reihenfolge der Worte rel. unerheblich. Sonderzeichen werden ignoriert.

Wenn Du magst, und das für Deine Zwecke anpassen willst, kann ich es nochmal raussuchen...

runner 20. Sep 2010 19:39

AW: Ähnlichkeiten im String suchen???
 
@Stahli:

An dem Thema bin ich auch gerade dran. Währe nett wenn du den Sourcecode hier mal reinstellen könntest.

stahli 20. Sep 2010 20:26

AW: Ähnlichkeiten im String suchen???
 
Liste der Anhänge anzeigen (Anzahl: 1)
Gerne! Anbei das Projekt.
Damals habe ich D2006 genutzt und jetzt noch einmal alles zusammen gesucht (ich hoffe, dass so alles passt).

Bei Fragen oder Problemen einfach nachfragen.

Ursprünglich habe ich damit Adressen verglichen, wobei auch unterschiedliche Reihenfolgen (PLZ, Ort, Straße, HausNr) und Schreibfehler toleriert wurden.
Bei dem Adressenvergleich wurden dann auch noch Teile vor und Nach "c/o" über kreuz verglichen (das ist hier nicht dabei).

Bin mal gespannt, ob es Euch etwas hilft...


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz