Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Extrem grosse Textdatei durchsuchen (https://www.delphipraxis.net/74764-extrem-grosse-textdatei-durchsuchen.html)

GetMyNameEx 8. Aug 2006 14:38


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

CK_CK 8. Aug 2006 14:43

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...

Klaus01 8. Aug 2006 14:44

Re: Extrem grosse Textdatei durchsuchen
 
Hallo Frank,

vielleicht findest Du in diesem Thread einige Ansätze: http://www.delphipraxis.net/internal...ghlight=suchen

Grüße
Klaus

TBx 8. Aug 2006 14:50

Re: Extrem grosse Textdatei durchsuchen
 
Oder wie wäre es hiermit?

Gruß

onlinekater

Luckie 8. Aug 2006 14:50

Re: Extrem grosse Textdatei durchsuchen
 
Zitat:

Zitat von CK_CK
Du könnstest z.B. vorher
StringList.BeginUpdate;
und danach
StringList.EndUpdate;
ausführen. Das bringt schon etwas Geschwindigkeit...

Eine StringListe ist eine nicht visuelle Komponente, was für ein Fenster willst du da nicht neu zeichnen?

CK_CK 8. Aug 2006 14:50

Re: Extrem grosse Textdatei durchsuchen
 
Zitat:

Zitat von Luckie
Eine StringListe ist eine nicht visuelle Komponente, was für ein Fenster willst du da nicht neu zeichnen?

Ups... Hab's mit ListBox verwechselt... :stupid:

Hador 8. Aug 2006 14:55

Re: Extrem grosse Textdatei durchsuchen
 
Ich würde vmtl. mit FileOpen, FileRead und FileClose arbeiten.

GetMyNameEx 8. Aug 2006 15:35

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!

HERMES 8. Aug 2006 17:13

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