Thema: Delphi Rechtschreibprüfung

Einzelnen Beitrag anzeigen

foerster7892

Registriert seit: 10. Okt 2007
Ort: Brieskow-Finkenheerd
181 Beiträge
 
#1

Rechtschreibprüfung

  Alt 29. Jan 2009, 07:45
Hi@all,
Ich hab versucht (wie man unten sieht) eine Rechtschreibprüfung zu entwerfen.
Leider funktioniert sie nicht richtig.

1.Problem
Es gibt keine Textdokumente mit nem Duden drin(für den Test hat mir zum Glück gereicht nen Txt mit nen paar Worten zu nutzen)
2.Problem
Es erkennt keine einzelnen Wörter was es aber laut quelltext machen sollte
3.Problem
Wenn ich den Button ein 2.Mal drücke hängt es sich auf
4.Problem
Es erkennt Fehler bei einzelnen Wörtern, aber wenn richtig dann 3.




Delphi-Quellcode:
const Worterbuch = 'C:\Users\user\Desktop\Wörterbuch.txt';

var
  Form4: TForm4;
  Eingabe, Zwablage, Fehler, Mistake :String;
  Beginn, Laenge, Ende, richtig, LaengeS :Integer;

implementation

{$R *.dfm}

function Falsch(Kontrolle :boolean; Ende, Anfang :integer):string;
var Wort, Woerter :string;
begin
  if Kontrolle=false then
  begin
    Wort := copy(Eingabe, Anfang, Ende);
    Woerter := Woerter +Wort + ', ';
    Falsch := Woerter;
    richtig := richtig + 1;
  end;
end;

function Kontrollf(Ende, Anfang :integer):boolean;
var Buch :textfile;
    Wort :string;
    richtig :integer;
begin
  richtig := 0;
  Zwablage := copy(Eingabe, Anfang, Ende-1);
  AssignFile(Buch, Worterbuch);
  reset(Buch);
  repeat
    readln(Buch, Wort);
    if Zwablage = Wort then
    richtig := richtig+1;
  until ((Zwablage = Wort) or (EOF(Buch)));
  if richtig = 1 then
  Kontrollf := true
  else
  Kontrollf := false;
end;

function Rechtschreibung(Eingabe:string):string;
var Anfang :integer;
    Kontrolle :boolean;
    Wort, Worter :string;
begin
  Anfang := Ende;
  repeat
    Beginn := Beginn + 1;
    Ende:= Ende + 1;
    Laenge := Laenge + 1;
    Zwablage := copy(Eingabe, Beginn, Ende);
  until ((Zwablage = ' ') or (Laenge=LaengeS));
  Kontrolle := Kontrollf(Anfang, Ende);
  Wort := Falsch(Kontrolle, Ende, Anfang);
  Worter := Worter + Wort;
  Rechtschreibung := Worter;
end;

procedure TForm4.Button1Click(Sender: TObject);
begin
  richtig := 0;
  Beginn := 0;
  Ende := 0;
  Eingabe := Edit1.Text;
  LaengeS:=length(Eingabe);
  repeat
    Fehler := Rechtschreibung(Eingabe);
  until (LaengeS=Laenge);
  if richtig >= 1 then
  Showmessage('Diese Wörter haben sie falsch geschrieben: ' + Fehler)
  else
  Showmessage('Alles richtig');
end;

end.

Könnt ihr mir helfen (aber bitte keine vollkommende Umstrukturierung des Quelltextes k? bin happy das so geschafft zu haben bisher)
  Mit Zitat antworten Zitat