AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Large Text File Viewer programmieren

Ein Thema von luke2 · begonnen am 19. Sep 2012 · letzter Beitrag vom 20. Sep 2012
Antwort Antwort
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#1

AW: Large Text File Viewer programmieren

  Alt 19. Sep 2012, 20:59
Ich würde eine Abbildung zwischen Zeilenpositionen und Blöcken (gleicher Größe) innerhalb der Datei machen.
Dafür würde ich für mir jeden Block, an den ich ausgelesen habe, merken, welche die erste Zeilennummer im Block ist.

Als Blockgröße würde ich 4kB vorschlagen, wenn du eh mit Memory Mapped Files arbeitest.
Der Index wäre dann aber auch relativ groß (ca. 20MB-40MB bei einer 20GB großen Datei).
Bei größeren Blöcken (zB. 4MB) wäre er entsprechend kleiner (20kB-40kB).

Damit würde Springen zu bestimmten Zeilen in der Datei relativ schnell
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#2

AW: Large Text File Viewer programmieren

  Alt 19. Sep 2012, 21:05
Damit würde Springen zu bestimmten Zeilen in der Datei relativ schnell
...nachdem man die gesammte Datei einmal eingelesen hat, vorher nicht
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#3

AW: Large Text File Viewer programmieren

  Alt 19. Sep 2012, 21:18
...nachdem man die gesammte Datei einmal eingelesen hat, vorher nicht
Dann könnte man die anderen Strategien verfolgen und dabei den Index gleich mit aufbauen. Sobald man in der Datei sucht, muss man eh kontinuierlich lesen. Dabei kann man den Index gleich mit aufbauen. Man könnte den Index sogar speichern und bei Dateien, an die nur angehangen wird (bei großen Textdateien nicht unwahrscheinlich), sogar behalten, wenn die sich geändert haben.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#4

AW: Large Text File Viewer programmieren

  Alt 19. Sep 2012, 21:33
...nachdem man die gesammte Datei einmal eingelesen hat, vorher nicht
Dann könnte man die anderen Strategien verfolgen und dabei den Index gleich mit aufbauen. Sobald man in der Datei sucht, muss man eh kontinuierlich lesen...
Sag ich doch. Man muss die Datei einmal komplett durchgelesen haben und schnell zu einer bestimmten Zeile zu springen. "Langsam" geht das natürlich sofort.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Large Text File Viewer programmieren

  Alt 19. Sep 2012, 21:42
Es gäbe ja auch die Möglichkeit die ersten Zeilen zu lesen und während der Anzeige in einem zweiten thread weiter zu lesen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#6

AW: Large Text File Viewer programmieren

  Alt 20. Sep 2012, 07:33
Luckie hat Recht. Memory Mapped Files machen das Anzeigen großer Dateien zum Kinderspiel. Ich hab das vor einiger Zeit mit dieser Klasse -> http://www.swissdelphicenter.ch/de/p...de.php?id=2013 <- umgesetzt. Damit kann man Teile eine Datei laden und anzeigen lassen ohne die ganze Datei laden zu müssen.
Thomas
Besucht doch mal http://www.hitziger.net
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Large Text File Viewer programmieren

  Alt 20. Sep 2012, 08:22
Schau mal hier:

http://www.delphipraxis.net/113289-mapped-streams.html

Der TFileStreamEx benutzt Memory Mapped Files. Brauchst nur die Unit runterzuladen und dir eine Instanz des TFileStreamEx erzeugen und kannst dann mit den gewohnten Stream-Methoden auf die Daten zugreifen
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:41 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