Einzelnen Beitrag anzeigen

CCRDude
(Gast)

n/a Beiträge
 
#15

Re: String in 3 MB großen Dateien suchen

  Alt 13. Apr 2007, 08:39
Glückauf,

Ich hoffe es macht hier nichts, eine derart alte Diskussion auszugraben, aber ich habe gerade eine Anmerkung zu diesem schreibgeschütztem Thema, und das hier ist imho die letzte Erwähnung jenen Codes...

Und zwar vergleiche ich gerade diverse Pascal-Implementierungen des Boyer-Moore-Algos, bzw. deren unterschiedlichen Laufzeiten in Delphi einerseits und FreePascal andererseits, und dabei hab ich den hier aus dem Forum (TJsTextSearch aus der Code-Libary) mitverglichen.

So in der Form, wie er dort in der Code-Library steht, ist leider immer noch ein Fehler drin: der Algo funktioniert so leider nur für Wörter, in denen sich keine Buchstaben wiederholen, zuverlässig ("Delphi"). Sobald ein Buchstabe mehrfach im Suchbegriff vorkommt, gehts manchmal daneben, weil die SkipTable falsch aufgebaut wird ("Delphi Praxis" mit zwei "i"). Damit der Algo richtig funktioniert, muss die SkipTable andersrum aufgebaut werden (also for iCnt := 1 to Length(SubStr) do). Wollte ich nur mal anmerken, falls sich noch jemand anders mal wundern sollte, warum der Algo je nach Start-Offset mal etwas findet, mal nichts. Vielleicht kanns ja jemand bestätigen und dann in der Code-Library verbessert werden
  Mit Zitat antworten Zitat