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)