Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   FreePascal Eine sehr große textbasierte Datei durchsuchen? (https://www.delphipraxis.net/194540-eine-sehr-grosse-textbasierte-datei-durchsuchen.html)

begin.delphi 5. Dez 2017 14:34

AW: Eine sehr große textbasierte Datei durchsuchen?
 
Siehe PN.

LTE5 5. Dez 2017 15:26

AW: Eine sehr große textbasierte Datei durchsuchen?
 
Schneller als das hier geht bestimmt aber es ist allemal schneller als alles was man sich selber baut
http://www.delphipraxis.net/151898-s...ei-reader.html

p80286 5. Dez 2017 22:05

AW: Eine sehr große textbasierte Datei durchsuchen?
 
Ich würde da jetzt keinen Gedanken an Text-Dateien verschwenden, sondern gleich eine Datenbank nutzen.

spätestens bei der dritten Suchanforderung ist die im Vorteil.

Gruß
K-H

jobo 5. Dez 2017 22:08

AW: Eine sehr große textbasierte Datei durchsuchen?
 
Was bedeutet "arbeiten und vor allem schnell" konkret?
Ist es die "aktuelle" GEDCOM Version?
Gibt es irgendwo Beispieldaten?

begin.delphi 6. Dez 2017 08:52

AW: Eine sehr große textbasierte Datei durchsuchen?
 
Zitat:

Zitat von jobo (Beitrag 1388017)
Was bedeutet "arbeiten und vor allem schnell" konkret?
Ist es die "aktuelle" GEDCOM Version?
Gibt es irgendwo Beispieldaten?

Unter arbeiten meine ich die ged-Datei lesen. Aber auch nicht alles, sondern nur nach bestimmten Namen suchen. Und mit schnell meine ich irgendwelche Vorgehensweise (TFileStream oder ReadLn) die schneller als die restlichen ist. Aus diesen zwei wäre das z.B. TFileStream.

Die eigentliche Datei habe ich noch nicht, aber eine Test-Datei, die ich mir selber erstellt habe. Meine, aber auch die eigentliche die ich noch bekomme, sind in der 5.5.1 Version.

p80286 6. Dez 2017 09:18

AW: Eine sehr große textbasierte Datei durchsuchen?
 
Zitat:

Zitat von begin.delphi (Beitrag 1388034)
Unter arbeiten meine ich die ged-Datei lesen. Aber auch nicht alles, sondern nur nach bestimmten Namen suchen.

Je nachdem was Du suchst, erstes Vorkommen/alle Vorkommen, wird Dir nichts anderes übrig bleiben als die Datei vollständig zu lesen.

Gruß
K-H

begin.delphi 6. Dez 2017 09:22

AW: Eine sehr große textbasierte Datei durchsuchen?
 
Zitat:

Zitat von p80286 (Beitrag 1388038)
Zitat:

Zitat von begin.delphi (Beitrag 1388034)
Unter arbeiten meine ich die ged-Datei lesen. Aber auch nicht alles, sondern nur nach bestimmten Namen suchen.

Je nachdem was Du suchst, erstes Vorkommen/alle Vorkommen, wird Dir nichts anderes übrig bleiben als die Datei vollständig zu lesen.

Gruß
K-H

So wie ich das verstehe kann ich in der *.ged nicht wie bei XML zwischen Tags springen, da muss ich wohl wirklich die *.ged komplet linear lesen.

himitsu 6. Dez 2017 09:39

AW: Eine sehr große textbasierte Datei durchsuchen?
 
Wenn der Inhalt sortiert ist, also in deinem Fall nach Namen, wenn du nach Namen suchen willst, dann kann man die Datei schon sehr schnell "überfliegen" und muß nicht alles lesen.

Man könnte sich vorher auch einen Index aufbauen, wo der Anfang jedes Datensatzes in einer Namensliste steht, um schnell zum gewünschten Datensatz springen zu können.
Vorallem wenn man mehrmals nacheinander sucht und die Liste der zu suchenden Namen nicht vorrher bekannt ist und man die nicht einfach in einem Lesedurchgang gemeinsam suchen könnte.

TiGü 6. Dez 2017 09:46

AW: Eine sehr große textbasierte Datei durchsuchen?
 
Wenn es nur darum geht, das du für dich persönlich Informationen rausfischst, dann kannst du auch das kostenlose Notepad++ versuchen. Sehr mächtiger Editor.

EDIT: Vergiss es, ab 1 GB macht der auch die Grätsche und sagt, dass die Datei zu groß ist.

p80286 6. Dez 2017 10:28

AW: Eine sehr große textbasierte Datei durchsuchen?
 
Zitat:

Zitat von himitsu (Beitrag 1388041)
Wenn der Inhalt sortiert ist, also in deinem Fall nach Namen, wenn du nach Namen suchen willst, dann kann man die Datei schon sehr schnell "überfliegen" und muß nicht alles lesen.

Man könnte sich vorher auch einen Index aufbauen, wo der Anfang jedes Datensatzes in einer Namensliste steht, um schnell zum gewünschten Datensatz springen zu können.
Vorallem wenn man mehrmals nacheinander sucht und die Liste der zu suchenden Namen nicht vorrher bekannt ist und man die nicht einfach in einem Lesedurchgang gemeinsam suchen könnte.

Und der Index fällt vom Himmel?

Wenn die Datei vorhanden ist, kennt man vllt. die Struktur, aber nicht den Inhalt. Der erschließt sich erst beim Lesen. Und irgendwie werde ich das Gefühl nicht los, daß es nicht darum geht einen Namen zu finden, sondern einen Datensatz, der an Hand eines Namens identifiziert wird.

@begin.delphi
Auch XML Dateien wollen gelesen werden, da gibt es kein umherspringen zwischen den Knoten ohne daß Daten gelesen werden. Das ist manchmal nicht offensichtlich aber es geht wirklich nicht ohne.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:41 Uhr.
Seite 2 von 3     12 3      

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