AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wiederkehrende Patterns in einem Text finden
Thema durchsuchen
Ansicht
Themen-Optionen

Wiederkehrende Patterns in einem Text finden

Ein Thema von Meflin · begonnen am 26. Jul 2007 · letzter Beitrag vom 26. Jul 2007
Antwort Antwort
tr909

Registriert seit: 5. Nov 2004
193 Beiträge
 
Turbo Delphi für Win32
 
#1

Re: Wiederkehrende Patterns in einem Text finden

  Alt 26. Jul 2007, 08:52
Ich habe mal folgendes gebastelt. Nicht geprüft und von der Performence her wohl auch nicht so doll. Zwei memos. In memo1 steht der zu untersuchende Text, in memo2 wird pro übereinstimmung einmal das Suchpattern ausgegeben.
lenSub gibt die lenge des Suchpatterns an. In diesem beispiel 3. Zu beginn werden die ersten 3 Zeichen kopiert und dann mit allen Zeichenketten der Länge drei des Textes verglichen. Und so weiter, wobei das Suchpattern jedes mal einen Schritt im Text weiter geht.

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
  s : string;
  I: Integer;
  sub : string;
  comp : string;
  j: Integer;
  lenSub : integer;
begin
  s := '';
  lenSub := 3;
  for I := 0 to memo1.lines.count - 1 do
    s := s + memo1.lines[i];
  for I := 1 to length(s)-lenSub-1 do
  begin
  sub := copy (s,i,lenSub);
  for j := lenSub+1+i to length(s)-lenSub-1-i do
  begin
    comp := copy (s,j,lenSub);
    if UpperCase(comp) = UpperCase(sub) then
      memo2.Lines.add(sub);
  end;
  end;
end;
Gruß
tr909

*edit* Besser wäre wohl folgender Ansatz. Zuerst alle möglichen ungleichen Pattern einer Länge ermitteln. Dann mit diesen Werten eine mit Hilfe von z.B. dem Knuth-Morris-Pratt-Algorithmus suchen.
*edit*
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz