Hallo alle zusammen,
kann mir da jemand helfen, bzw. hat einer eine Idee?
Folgender Code:
************************************************** **********
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
RichEdit1: TRichEdit;
GroupBox2: TGroupBox;
Panel1: TPanel;
GroupBox3: TGroupBox;
RichEdit2: TRichEdit;
Button1: TButton;
Button2: TButton;
StatusBar1: TStatusBar;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
function vergl(s1, s2:string; n:Word): Boolean; // vergleicht die ersten n Zeichen von zwei Strings
function delLZ(s: string): string;
var ss: string;
i,j: Word;
begin
j:=0; ss:='';
for i:=1 to Length(s) do
begin
if (s[i] <> ' ') and (s[i] <> '-') then
begin
Inc(j);
ss:= ss + s[i]
end;
if j=n then Break
end;
Result := UpperCase(ss)
end;
begin
if delLZ(s1)=delLZ(s2) then Result:=True else Result:=False ; // einfacher als mit CompareStrings/CompareText
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if vergl(RichEdit1.Text, RichEdit2.Text, 60000)=True then // erste 8 Zeichen sind relevant
Panel1.Caption := 'Beide Texte sind sich ähnlich!'
else
begin MessageBeep(0); Panel1.Caption := 'Beide Texte sind sich nicht ähnlich!' end
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Close
end;
end.
************************************************** *********
vergleicht zwei Texte, ob da eine Übereinstimmung fehlt und meldet dieses im Panel1.
Nur:
Bei einem größeren Text nützt mir das sehr wenig (an Zeit) - muß da Zeile um zeile nachlesen um die abweichung (in einem praktisch gleichen Text zu finden).
Es wäre gut, das die Unterschiede markiert sind, bzw. der Cursor dort hinzeigt.
Habe schon alles mögliche probiert. Nichts tut sich im Hirn!
Danke und Gruß
HJS
kann mir da jemand helfen, bzw. hat einer eine Idee?
Folgender Code:
************************************************** **********
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
RichEdit1: TRichEdit;
GroupBox2: TGroupBox;
Panel1: TPanel;
GroupBox3: TGroupBox;
RichEdit2: TRichEdit;
Button1: TButton;
Button2: TButton;
StatusBar1: TStatusBar;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
function vergl(s1, s2:string; n:Word): Boolean; // vergleicht die ersten n Zeichen von zwei Strings
function delLZ(s: string): string;
var ss: string;
i,j: Word;
begin
j:=0; ss:='';
for i:=1 to Length(s) do
begin
if (s[i] <> ' ') and (s[i] <> '-') then
begin
Inc(j);
ss:= ss + s[i]
end;
if j=n then Break
end;
Result := UpperCase(ss)
end;
begin
if delLZ(s1)=delLZ(s2) then Result:=True else Result:=False ; // einfacher als mit CompareStrings/CompareText
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if vergl(RichEdit1.Text, RichEdit2.Text, 60000)=True then // erste 8 Zeichen sind relevant
Panel1.Caption := 'Beide Texte sind sich ähnlich!'
else
begin MessageBeep(0); Panel1.Caption := 'Beide Texte sind sich nicht ähnlich!' end
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Close
end;
end.
************************************************** *********
vergleicht zwei Texte, ob da eine Übereinstimmung fehlt und meldet dieses im Panel1.
Nur:
Bei einem größeren Text nützt mir das sehr wenig (an Zeit) - muß da Zeile um zeile nachlesen um die abweichung (in einem praktisch gleichen Text zu finden).
Es wäre gut, das die Unterschiede markiert sind, bzw. der Cursor dort hinzeigt.
Habe schon alles mögliche probiert. Nichts tut sich im Hirn!
Danke und Gruß
HJS