Einzelnen Beitrag anzeigen

Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#10

Re: Doppelte Einträge entfernen?

  Alt 5. Aug 2005, 11:50
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
Martin Schaefer
  Mit Zitat antworten Zitat