AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign FreePascal Eine sehr große textbasierte Datei durchsuchen?

Eine sehr große textbasierte Datei durchsuchen?

Ein Thema von begin.delphi · begonnen am 5. Dez 2017 · letzter Beitrag vom 6. Dez 2017
Antwort Antwort
Seite 1 von 3  1 23   
begin.delphi

Registriert seit: 31. Mai 2014
10 Beiträge
 
FreePascal / Lazarus
 
#1

Eine sehr große textbasierte Datei durchsuchen?

  Alt 5. Dez 2017, 13:52
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
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Eine sehr große textbasierte Datei durchsuchen?

  Alt 5. Dez 2017, 13:57
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.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.797 Beiträge
 
Delphi 12 Athens
 
#3

AW: Eine sehr große textbasierte Datei durchsuchen?

  Alt 5. Dez 2017, 14:01
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
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Eine sehr große textbasierte Datei durchsuchen?

  Alt 5. Dez 2017, 14:01
OT:
1 GB große GEDCOM Datei? Wieviele Personen sind denn darin?
  Mit Zitat antworten Zitat
begin.delphi

Registriert seit: 31. Mai 2014
10 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Eine sehr große textbasierte Datei durchsuchen?

  Alt 5. Dez 2017, 14:12
OT:
1 GB große GEDCOM Datei? Wieviele Personen sind denn darin?
Ein Paar Millionen. Ist schon was...
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Eine sehr große textbasierte Datei durchsuchen?

  Alt 5. Dez 2017, 14:18
Ist das ein Textbackup der Datenbank von FamilySearch?
Ein einzelner Mensch kann ja unmöglich soviele Daten zusammentragen.
  Mit Zitat antworten Zitat
begin.delphi

Registriert seit: 31. Mai 2014
10 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Eine sehr große textbasierte Datei durchsuchen?

  Alt 5. Dez 2017, 14:27
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.005 Beiträge
 
Delphi 12 Athens
 
#8

AW: Eine sehr große textbasierte Datei durchsuchen?

  Alt 5. Dez 2017, 14:31
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.
Hier im Forum suchengroße Textdateien
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 5. Dez 2017 um 14:34 Uhr)
  Mit Zitat antworten Zitat
begin.delphi

Registriert seit: 31. Mai 2014
10 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Eine sehr große textbasierte Datei durchsuchen?

  Alt 5. Dez 2017, 14:33
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!
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Eine sehr große textbasierte Datei durchsuchen?

  Alt 5. Dez 2017, 15:08
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:51 Uhr.
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