Re: Knuth-Morris-Pratt Algorithmus
Das ist ein Beispiel für den Aufruf
|
Re: Knuth-Morris-Pratt Algorithmus
den link den du(klaus) mir als erstes geschickt hattest, wie binde ich den ein? unter nem button? oder gilt dieser allgemein?
|
Re: Knuth-Morris-Pratt Algorithmus
Zitat:
Mfg |
Re: Knuth-Morris-Pratt Algorithmus
danke :thumb:
|
Re: Knuth-Morris-Pratt Algorithmus
genial :party: es funktioniert! er gibt mir jetz die stelle in zahlenform an, an welcher das gesuchte wort beginnt. genial zur erklährung im vortrag wäre wenn er mir nochmal den text in dem gesucht wird anzeigt und das gefundenne wort farbig markiert. ist das möglich bzw. wie?
also es reicht wenn er nur die stelle markiert die er mir bisher als zahl angibt. ansonsten wäre es sicherlich zu kompliziert. |
Re: Knuth-Morris-Pratt Algorithmus
dazu kannst Du die TRichtext Komponente nehmen.
In der Forumsuche sollte zu finden sein, wie ein Wort/TeilWort markiert werden kann. Grüße Klaus |
Re: Knuth-Morris-Pratt Algorithmus
Zitat:
Delphi-Quellcode:
nicht gefunden... :gruebel: :gruebel: :gruebel:
s1 := 'einBeliebigerString';
s2 := 'ein'; i:=Knuth_Morris_Pratt(pchar(s1),pchar(s2),length(s1),length(s2)); |
Re: Knuth-Morris-Pratt Algorithmus
Guten Abend,
der verlinkte Code ist anscheinend nicht ganz o.k. Er findet nur Teilwörter mit der Länge 2 und auch nur dann wenn sie nicht am Anfang des zu durchsuchenden Strings stehen. Das mit der Teilwortlänge von 2 habe ich unten berichtigt. Weiter besteht das Problem, dass kein Teilwort gefunden wird wenn es im zu durchsuchenden String am Anfang steht. Grüße Klaus
Delphi-Quellcode:
function kmp(const target,pattern: pchar;const LTarget, lPattern: Integer):Integer;
var step : array[0..255] of Integer; i,j : Integer; begin result := -1; i:=0; j := -1; if lTarget * lPattern = 0 then exit; step[0] := -1; repeat begin if ( j = -1) or (pattern[i] = pattern[j]) then begin inc(i); inc(j); if pattern[j] = pattern[i] then step[i] :=step[j] else step[i] := j; end else j:=step[j]; end; until i >= lPattern -1; // hier ein > eingefügt j:= -1; i:=0; while i < lTarget do begin if (j = -1) or (pattern[j] = target[i]) then begin inc(i); inc(j); if j >= lPattern then begin result := i-j+1; exit; end; end else j:= step[j]; end; end; |
Re: Knuth-Morris-Pratt Algorithmus
Ich habs jetz in der Hilfe gefunden aber diese ist nicht wirklich vollständig auf dem rechner vorhanden; der begriff ist zwar vorhanden aber die implentierungsweise zum Fettschreiben fehlt irgendwie. Hab dann auch den Eintrag im Forum angeguckt (http://www.delphipraxis.net/internal...en+hervorheben) aber ich verstehe nicht wirklich wie ich den einbauen muss.
|
Re: Knuth-Morris-Pratt Algorithmus
Hallo,
vielleicht ist es hier etwas anschaulicher erklärt. Ansonsten einfach TRichEdit auf die Form ziehen. Mit RichEdit1.Text:= den Text übergeben. Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz