Delphi-PRAXiS
Seite 1 von 3  1 23   

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 13:52

Eine sehr große textbasierte Datei durchsuchen?
 
Hallo Delphianer,

mein erstes Thema und ich habe folgende Frage. Aber vorher kurz zu mir: Delphi hatte ich mal vor vielen Jahren in der Schule, seit dem habe ich mit Delphi kaum was gemacht. Und nun zu meiner Frage:

Ich möchte eine sehr große textbasierte Datei durchsuchen, nämlich eine GEDCOM-Datei (https://de.wikipedia.org/wiki/GEDCOM). Diese ist ca. 1GB groß und ich glaube diese kann ich nicht wie eine KB-große Datei einfach so in den RAM laden. Was gibt es für Techniken, um mit großen Dateien zu arbeiten, und vorallem relativ schnell?

Gruß
Johann

Namenloser 5. Dez 2017 13:57

AW: Eine sehr große textbasierte Datei durchsuchen?
 
Hi,

als ersten Schritt würde ich mir mal TFileStream bzw. TStream anschauen. Damit kannst du eine Datei häppchenweise verarbeiten, ohne sie komplett in den RAM zu laden.

Sherlock 5. Dez 2017 14:01

AW: Eine sehr große textbasierte Datei durchsuchen?
 
Lade die Datei in ein Delphi-Referenz durchsuchenSystem.Classes.TFileStream-Objekt. Mit den Methoden Seek und Read solltest Du für den Fall, daß Du nur bestimmte Eintragungen suchst dann ganz passabel zum Ziel kommen. Falls du den kompletten Dateiinhalt in Pascal-Objekte Umwandeln möchtest, mußt du halt von Anfang bis Ende auslesen, dazu reicht ja ein wiederholtes Read.

Sherlock

TiGü 5. Dez 2017 14:01

AW: Eine sehr große textbasierte Datei durchsuchen?
 
OT:
1 GB große GEDCOM Datei? Wieviele Personen sind denn darin? :shock:

begin.delphi 5. Dez 2017 14:12

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

Zitat von TiGü (Beitrag 1387988)
OT:
1 GB große GEDCOM Datei? Wieviele Personen sind denn darin? :shock:

Ein Paar Millionen. Ist schon was...

TiGü 5. Dez 2017 14:18

AW: Eine sehr große textbasierte Datei durchsuchen?
 
Ist das ein Textbackup der Datenbank von FamilySearch?
Ein einzelner Mensch kann ja unmöglich soviele Daten zusammentragen.

begin.delphi 5. Dez 2017 14:27

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

Zitat von TiGü (Beitrag 1387992)
Ist das ein Textbackup der Datenbank von FamilySearch?
Ein einzelner Mensch kann ja unmöglich soviele Daten zusammentragen.

Ist ein Ahnenforschungsprojekt, in der Datei ist eine Volksgruppe eingetragen und ihre Vorfahren der letzten 500 Jahre. Willst Du mit machen?

himitsu 5. Dez 2017 14:31

AW: Eine sehr große textbasierte Datei durchsuchen?
 
Die alten Dateifunktionen ala Delphi-Referenz durchsuchenReadLn funktionieren immernoch, auch über 2GB hinaus, wenn man ausschließlich sequentiell liest.
Also falls dir "schnell" egal ist und es auch ruhig langsamer und einfach sein darf.

Es gibt hier auch mehrere Komponenten zu finden, welche die Datei stückchenweise in den Speicher laden können.
[DP]große Textdateien[/DP]

begin.delphi 5. Dez 2017 14:33

AW: Eine sehr große textbasierte Datei durchsuchen?
 
Ja, es geht nur ums Lesen, mehr nicht. Ok, ich schaue mal was sich besser umsetzen lässt, TFileStream oder ReadLn. Und vielen Dank erst mal!

TiGü 5. Dez 2017 15:08

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

Zitat von begin.delphi (Beitrag 1387993)
Zitat:

Zitat von TiGü (Beitrag 1387992)
Ist das ein Textbackup der Datenbank von FamilySearch?
Ein einzelner Mensch kann ja unmöglich soviele Daten zusammentragen.

Ist ein Ahnenforschungsprojekt, in der Datei ist eine Volksgruppe eingetragen und ihre Vorfahren der letzten 500 Jahre. Willst Du mit machen?

Habt ihr eine Projektseite oder ähnliches für weitere Informationen?

Ich kenne bspw. die Ahnengemeinschaft aus Sachsen, aber die haben nur 179013 Personen im Stammbaum und es arbeiten 476 Menschen daran mit.
https://www.myheritage.de/site-10990...ft-aus-sachsen


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 Uhr.
Seite 1 von 3  1 23   

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