AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte TFileStringList + TTextStream
Thema durchsuchen
Ansicht
Themen-Optionen

TFileStringList + TTextStream

Ein Thema von himitsu · begonnen am 7. Jun 2010 · letzter Beitrag vom 7. Jun 2010
 
Benutzerbild von himitsu
himitsu
Online

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

TFileStringList + TTextStream

  Alt 7. Jun 2010, 10:35
Achtung: In der aktuellen Fassung sind diese Codes (abgesehn von TTextStream) nur für Delphi 2009 oder neuer geeignet.


Joar, also von 'ner Weile hatte ich schonmal den TTextStream zur Diskusion freigegeben und nun kommt der Rest.

Die TFileStringList ist eine Art StringListe, nur daß sie die Daten nicht komplett im Arbeitsspeicher behalten muß.
Hiermit lassen sich also große Dateien sehr Speichersparend (zumindestens, was den RAM betrifft) öffnen und bearbeiten.

Für eine schnellere Textsuche wird/kann ein Hash über die Lines/Strings oder Names gelegt werden.

Zur Verwaltung wird eine Indexliste der Zeilen in einer temporären MMF angelegt und auch geänderte/neue Strings/Lines können in eine Tempdatei ausgelagert werden.

Ich hatte gestern nach auch mal einen Test durchlaufen lassen. (siehe nächsten Beitrag #2)

Gut, der Index ist nicht grade sehr speichersparend, da er 28 Byte pro Zeile belegt, was vorallem bei sehr kurzen Zeilen schnell mal mehr ergibt, aber davon verbleiben nur maximal 14 MB im RAM. (abgesehn von der WindowsFileCache)

Der TTextStream wurde, Aufgrund seiner gewachsenen Komplexität, aus der TFileStringList extrahiert und ist nun getrennt nutzbar.
Dieser bietet einen sequentiellen Zugriff auf alle mögliche Arten von Textdateien - Lesend oder Schreibend.

TTextStreamEx bietet dann noch ein paar Funktionalitäten, welche man von den alten Pascal-Textdateifunktionen kennt. (siehe TTextStream)

Die Temp-Dateien werden standardmäßig im Windows-Temp-Verzeichnis angelegt und sie werden so geöffnet, daß sie selbst beim Absturz des Programms automatisch von Windows gelöscht werden.

An Textdateien können alle möglichen Codierungen verwendet geladen und geseichert ... alles was TEncoding zu bieten hat.
(also nicht nur ANSI, wie bei den Pascalroutinen)
Angehängte Dateien
Dateityp: 7z FileStringList.7z (22,2 KB, 51x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 7. Jun 2010 um 10:50 Uhr)
  Mit Zitat antworten Zitat
 


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 10:37 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