Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   auf "Schreibfehler" reagieren (https://www.delphipraxis.net/189744-auf-schreibfehler-reagieren.html)

Jean312 15. Jul 2016 10:31

auf "Schreibfehler" reagieren
 
Hallo an die Gemeinde,

vielleicht hat jemand interessante Ansätze, wie ich folgende Hürde bewältigen kann.

Ich muss in irgendeiner Form auf eventuelle Schreibfehler reagieren.

Folgendes Beispiel:
'Name' = Rockmann {Referenz}

Der Anwender schreibt den Namen falsch, z.B.
Rokkmann
Rogmann
Rokman ...

Ich möchte das prüfen und bei eventuellen Teilübereinstimmungen einen Hinweis geben, dass die Eingabe doch vielleicht noch einmal geprüft werden sollte.

Wie kann ich das am Besten machen?
Erschwerend kommt ja hinzu, dass die Stringlänge durch die Schreibfehler verglichen zum Referenzwert 'Name' unterschiedlich ist.

Irgendwelche Ideen?

Vielen Dank schonmal im Voraus.

dGeek 15. Jul 2016 10:39

AW: auf "Schreibfehler" reagieren
 
Ich glaube dir bleibt nichts anderes übrig, als den Teil hinter dem " = " mit Strings aus einer Liste zu vergleichen.
Denn woher soll die Anwendung sonst wissen, ob es einen Fehler gibt oder nicht.

Billa 15. Jul 2016 11:03

AW: auf "Schreibfehler" reagieren
 
Vielleicht wäre noch eine Idee die Verwendung von Delphi-Referenz durchsuchenSoundEx?

stahli 15. Jul 2016 11:04

AW: auf "Schreibfehler" reagieren
 
Schau mal hier, ob Dir etwas hilft: http://www.delphipraxis.net/154811-v...rozentual.html

p80286 15. Jul 2016 11:21

AW: auf "Schreibfehler" reagieren
 
Zitat:

Zitat von Jean312 (Beitrag 1342717)
Ich muss in irgendeiner Form auf eventuelle Schreibfehler reagieren.
....

Der Anwender schreibt den Namen falsch, z.B.
Rokkmann
Rogmann
Rokman ...

das ist aber ganz dünnes Eis. Nimm z.B. Maier,Meier,Mayer,Meyer,Mair,Meir......
In Deutschland ist Rokkmann u.U. ein Fehler, unsere Niederländischen Nachbarn sehen das etwas anders.

Gruß
K-H

Jean312 15. Jul 2016 12:05

AW: auf "Schreibfehler" reagieren
 
Hallo,

danke für die feedbacks.

@Billa: SoundEx kenne ich noch nicht. Muss ich mir mal anschauen. Danke.

@stahli: Das sieht richtig vielversprechend aus. Da klemm ich mich mal rein. :thumb:

@p80286: Ich weiß, dass diese Problematik nicht ganz einfach ist. Deswegen muss ich auch auf Teilübereinstimmungen reagieren. Der Name Meier (in seinen verschiedensten Schreibweisen) ist das beste Beispiel. Hier muss man eh nachfragen. Vielen Dank.

t.roller 15. Jul 2016 12:20

AW: auf "Schreibfehler" reagieren
 
http://www.delphicode.co.uk/delphi-spell-check/

Billa 15. Jul 2016 12:27

AW: auf "Schreibfehler" reagieren
 
Der Spellchecker sieht gut aus, benötigt aber doch immer noch die zusätzlichen Dateien ....und die müssten dann doch gepflegt werden, oder?

Was mir noch nicht klar ist: Woher kommt die angesprochene Referenz? Ist das eine Tabelle?

Klaus01 15. Jul 2016 13:37

AW: auf "Schreibfehler" reagieren
 
.. sollte nicht auch hier die Levenshtein Distance greifen?

Grüße
Klaus

t.roller 15. Jul 2016 13:45

AW: auf "Schreibfehler" reagieren
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von Billa (Beitrag 1342738)
Der Spellchecker sieht gut aus, benötigt aber doch immer noch die zusätzlichen Dateien ....und die müssten dann doch gepflegt werden, oder?

Was mir noch nicht klar ist: Woher kommt die angesprochene Referenz? Ist das eine Tabelle?

Andere Sprachen

Demo incl. DIC und AFF im Anhang.

Delphi-Quellcode:
unit Unit1; //20160715

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
  Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, SpellCheck, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    ListBox1: TListBox;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    SpellCheck1: TSpellCheck;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListBox1.Clear;
  if SpellCheck1.IsMisspelled(Edit1.Text) then
    SpellCheck1.GetSuggestions(Edit1.Text, ListBox1.Items)
  else
    ShowMessage(Edit1.Text+' is not misspelled');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  SpellCheck1 := TSpellCheck.Create(Self);
  SpellCheck1.AffFileName := ExtractFilePath(Application.ExeName)+'de_DE.aff';
  SpellCheck1.DictFileName := ExtractFilePath(Application.ExeName)+'de_DE.dic';
  SpellCheck1.Active := True;
end;
end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:27 Uhr.
Seite 1 von 2  1 2      

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