Autor Beitrag
starsurfer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 334

Win 95, Win 98, Win XP, Win Vista, Linux
D5 Enterprise ,D2005, D6 Personal, Visual C++ Express 2005, C++ Builder 6 E, Dev-C++
BeitragVerfasst: Sa 27.08.05 18:30 
Ich will mir ein Programm schreiben das eine Rechschreibprüfung hat, da man im I-net aba nirgendwo eine Wortliste findet hab ich mir ein Programm gemacht wo ich meine eigene Wortliste erstelle,

dazu kopier ich irgendwelche Texte in mein memo Feld und mein Programm geht Wort für Wort durch und fügt die der Liste hinzu wenn se noch nich da sind...(ok falsch geschriebene Wörter erkennst natürlich nich, muss mal halt richtige Texte nehmen, udn wenn man se vorher in word kopiert und da berichtigen lässt :wink: )

so der aktuelle code:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
procedure TForm1.Button1Click(Sender: TObject);
var i,j,z:integer;
    zeile,wort:string;
    doppelt:bool;
begin
doppelt:=false;
for i:=0 to memo1.lines.count do
    begin
    zeile:=memo1.Lines.Strings[i]+' ';
       for j:=1 to length(zeile) do
           begin
           if ord(zeile[j]) in [65..90,97..122,196,214,223,220,225,228,246,252then
              begin
              wort:=wort+zeile[j];
              end
                 else
              begin
              if (wort<>''and (length(wort)>1then
                 begin
                      for z:=0 to listbox1.Items.Count-1 do
                          begin
                          if ansicomparetext(wort,listbox1.items[z])=0 then
                             begin
                             doppelt:=true;
                             if ansicomparestr(wort,listbox1.items[z])<> 0 then
                                begin
                                form2.RadioButton2.Caption:=wort;
                                form2.RadioButton1.Caption:=listbox1.items[z];
                                form2.RadioButton1.Checked:=true;
                                form2.showmodal;
                                if form2.RadioButton2.Checked=true then listbox1.Items[z]:=wort;
                                end;
                             end;
                          end;
                 if (doppelt=false) then listbox1.Items.Add(wort);
                 end;
                 wort:='';
                 doppelt:=false;
              end;
           end;
    end;
listbox1.Items.SaveToFile(extractfilepath(application.exename)+'wortliste.txt');
end;


nun möchte ich aber noch erreichen das er z.B. nicht

Bahn
Hof
Bahnhof

hinzufügt, sondern nur

Bahn
Hof

(das andere füg ich dann erst bei der Rechschreibprüfung zusammen)

nur hab ich keine Ahnung wie ich das machen soll, denn z.B bei:


Ei
Leiter

würder er bei meinem Versuch mit pos nur noch "Leiter" hinzufügen und "Ei" weg lassen weils ja schon in Leiter drin is

*help*

und wenn ihr meine Code verbessern/verschnellern könnt imma her mit Vorschlägen ;D


Moderiert von user profile iconGausi: Topic aus CLX / Delphi Language (Object-Pascal) verschoben am So 28.08.2005 um 12:20

_________________
GEIZ IST GEIL! - Ihr Sozialamt
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 28.08.05 12:12 
Moin!

Der Unterschied zwischen Beispiel 1 und 2 ist, dass bei 1 eine Wortzusammensetzung stattfindet (Verkettung), während es bei 2 "nur" enthalten ist. Das kannste ja wohl im Code abfangen; aber bei so Sachen kommt man schnell mit der Semantik in Berührung, und da wird´s am Compi immer SEHR SEHR SCHWER... :wink:

cu
Narses