![]() |
Extrem grosse Textdatei durchsuchen
Hi!
Habe eine (und damit mehrere :) ) extrem grosse Textdatei (100-500MB), in der ich die Häufigkeit einer bestimmten Zeichenfolge ermitteln will. Bei 200MB und dem Laden der Datei in eine TStringList, die anschliessend durchsucht wird dauert das ganze ca. 5Minuten (die Zeichenfloge wurde ca. 200.000 mal gefunden). gibt es keine möglichkeit das ganze schneller durchzuführen? Zusatzfrage: Wie leg ich mich am besten an wenn ich die Datei in mehrere aufteilen will, wobei in jeder (Teil-)Datei die Zeichenfolge x-mal drin vorkommen soll? MfG, Frank |
Re: Extrem grosse Textdatei durchsuchen
Du könnstest z.B. vorher
StringList.BeginUpdate; und danach StringList.EndUpdate; ausführen. Das bringt schon etwas Geschwindigkeit... Ansonsten arbeite doch mit einer Datenbank... |
Re: Extrem grosse Textdatei durchsuchen
Hallo Frank,
vielleicht findest Du in diesem Thread einige Ansätze: ![]() Grüße Klaus |
Re: Extrem grosse Textdatei durchsuchen
|
Re: Extrem grosse Textdatei durchsuchen
Zitat:
|
Re: Extrem grosse Textdatei durchsuchen
Zitat:
|
Re: Extrem grosse Textdatei durchsuchen
Ich würde vmtl. mit FileOpen, FileRead und FileClose arbeiten.
|
Re: Extrem grosse Textdatei durchsuchen
Vielen Dank für die schnellen und hilfreichen Antworten.
Dadurch konnte ich die 'Suchzeit' auf etwa die hälfte verkürzen! |
Re: Extrem grosse Textdatei durchsuchen
Also eine StringList ist da sicherlich eine sehr suboptimale Lösung. Mit Hador schon sagte mit FileOPen und co. wirst du einiges schneller sein, und zum durchsuchen der Daten wenn du sie dann mit ReadFile gelesen hast wäre der KMP oder der Boyer-Moore Algorithmus sicherlich nicht ungeeignet.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:10 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