![]() |
Schnelle Suche in Textdateien
Hallo,
Brauche eine schnelle Routine, welche nach einen String in Textdateien sucht. (Case insensitive) Hat jemand mal jemand von euch eine solche Funktion geschrieben (am besten asm optimiert) oder kann mir Hinweise geben, was am Schnellsten ist. (Filestream etc...) (Die Anzahl Zeichen in den Textdateien ist i.d.R < 1500) |
Re: Schnelle Suche in Textdateien
Hi,
warum muss es denn so super schnell sein? Also klar, schnell ist immer toll, aber ich denke mit der Suche in der DP findest du schneller dein Ergebnis (ob schon jmd. ein Test gemacht hat) als mit dem Thread hier. Jedenfalls gibt es mindest einen, der schon ein schnellen Suchalgorithmus geschrieben hat, nennt sich Borland, hat gleich verschiedene Algorithmen (auch Case-Sensitive). Also imho ist eine TStringList mit Pos zusammen nicht langsamer als eine der Alternativen Lösungen (aber deutlich weniger Aufwendig). Aber am schnellsten dürfte ein MemoryStream sein, auf den du den Knuth-Morris-Pratt Algorithmus anwendest, der müsste einer der schnellsten bekannten Algorithmen für's String-Matching sein (denke amortisiert kannst du ausrechnen, dass der mit linearer Laufzeit auskommt). Gruß Der Unwissende |
Re: Schnelle Suche in Textdateien
Zitat:
Kennt jemand vielleicht MTSearch? ![]() |
Re: Schnelle Suche in Textdateien
|
Re: Schnelle Suche in Textdateien
Zitat:
Da ist die Zeit, die dein Festplatte benötigt um diese Datei zur Verfügung zu stellen mit sehr hoher Wahrscheinlichkeit schon >> als die Zeit, die deine Suche nach einem bestimmten String angeht. Ich denke du kannst deutlich mehr Zeit rausholen, wenn du geschickt vorlädst (soweit es nicht der Fall ist) und dort Zeit rausholst. Ich weiß nicht wie gut du da schon optimiert hast. Natürlich kannst du danach Wörter so portionieren, dass sie Ideal in den Speicher (natürlich möglichst L1 Cache) passen und mittels linearer Programmierung und effizienten Algorithmen ein paar weitere Microsekunden rausholen, aber die Ladezeiten der Festplatte bleiben im Millisekundenbereich, von daher... Gruß Der Unwissende |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 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 by Thomas Breitkreuz