Moin, moin, Heike,
also ich würde vom Prinzip alle Wörter des Memos in eine sowie ihre Startpostion Stringliste eintragn und dann hier nach doppelten suchen. Dafür kannst Du auf MEmo.Lines.Text zugreifen, dann hast Du keine Zeilenprobleme, da Deine Wiederholungen ehedem nicht Zeilengebunden sind.
Na so´n Teilansatz kommt hier ma´n an:
Delphi-Quellcode:
function PosCharEnh
( const Ch : Char;
const S : string;
Start : Integer = 1)
: Integer;
var
I, N: Integer;
begin
Result := 0;
N := Length (S);
if Start < 1 then
Start := 1;
if (N = 0) or (Start > N) then
Exit;
for I := Start to N do
begin
if S [I] = Ch then
begin
Result := I;
Exit;
end;
end;
end;
procedure BuildList
var MyList : TStringList;
vat MyPosFront : integer;
vat MyPosEnd : integer;
begin
MyPosFront := 1
MyPosEnd := 2;
while PosCharEnh( ' ', MemoLines.Text, MyPosFront ) > 0 do
begin
// Wortende ermitteln
MyPosEnd := PosCharEnh( ' ', MemoLines.Text, MyPosEnd );
// Wort in Liste
MyList.Add( copy (MyPosFront, MyPosEnd-MyPosFront, Inttostr(MyPosFront) + '|' Inttostr(MyPosEnd) + '|'MemoLines.Text) );
// Suchpostionen neu setzen
MyPosFront := MyPosEnd;
MyPosEnd := MyPosFront+1;
end;
end;
Soweit zum Listenaufbau, irgendwie lauert da wieder Arbeit für mich...
Grüße // Martin