Zitat von
nahpets:
Zitat von
Andreas L.:
Die Funktion SoundEx erwartet als zweiten Parameter eine Längenangabe als Integer. Hier könnte man die Länge des Input-Strings nehmen und angefügte Nullen nachher entfernen.
ShowMessage(StringReplace(SoundEx(Edit1.text, Length(Edit1.text)), '0', '', [rfReplaceAll]));
Diese Variante entspricht aber dann nicht dem patentierten SoundEx, was sicherlich im Bezug auf die Vergleichbarkeit bei längeren Vergleichswerten vorteilhaft ist. Das Problem mit dem Anfangsbuchstaben bleibt. Gerade bei Worten die mit c oder k, v oder w... ist SoundEx nicht wirklich hilfreich.
Nehmen wir mal die Wikipediabeispiele:
Code:
Britney => BRTN => B635,
Spears => SPRS => S162,
bewährten => BRTN => B635,
Superzicke => SPRZCK => S16222 => S162.
Von klanglicher Ähnlichkeit oder Schreibfehlern, wie Google sie erkennt, ist man hier weit entfernt.
Ja, du hast recht. Die Ergebnisse werden aber besser wenn man die Routine SoundExInt verwendet. Bsp.:
Zitat:
Britney->34444754
Spears->497547233
bewährten->34444754
Superzicke->497553407
Khaos->277416350
Chaos->57177422
Briete->34336709
Breite->34336709
Brite->34336709
Mach mal->333318833
Macht->332929871
Geländer->170254232
Gländer->170254232
Länder->308706182
Laender->308706182
Laendr->308706182
Ländr->308706182
Das ist nicht das Non-Plus-Ultra. Aber für einfache Suchen reicht das doch vollkommen, oder?