AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi 2 Gigabyte grosse Datei blockweise durchsuchen
Thema durchsuchen
Ansicht
Themen-Optionen

2 Gigabyte grosse Datei blockweise durchsuchen

Ein Thema von tuebben · begonnen am 28. Dez 2006 · letzter Beitrag vom 31. Dez 2006
 
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: 2 Gigabyte grosse Datei blockweise durchsuchen

  Alt 28. Dez 2006, 14:06
Hi,
dein Ansatz auf TFileStream zu setzen ist imho gar nicht schlecht, kannst du sehr einfach verwenden und spricht nichts ernsthaft gegen.

Was die Positionen und das dyn. Speichern angeht, hast du gleich mehrere Möglichkeiten. Die erste (von der ich dir gleich abraten möchte) besteht darin, dass du ein dyn. Array verwendest. Hier kannst du mittels setLength die Länge dyn. anpassen, was intern aber zum neu allozieren von Speicher und umkopieren der alten Daten führt (also ein eher großer Overhead). Hier kannst du natürlich einfach mehr Speicher reservieren als du benötigst (der Overhead pro Element sinkt entsprechend ab), musst dann allerdings natürlich auch verwalten wieviele Elemente tatsächlich benutzt werden.
Da gibt es eine Klasse TList, die nimmt dir genau das ab. Intern wird zwar ein Array verwendet, aber diese Klasse kümmert sich bereits um die Verwaltung der Größe (du musst nicht mehr machen als Elemente mit Add einfügen). TList speichert dabei einfach Pointer, hier kannst du also die Adresse beliebiger Daten ablegen (oder gleich die 32 Bit als Position missbrauchen).
Verwendest du wirklich Objekte (also Instanzen von Klassen), so kannst du auf TObjectList zurückgreifen. Im Prinzip funktioniert diese Liste wie TList, du kannst in ihr aber nur Objekte (Referenzen auf diese) speichern. Der Vorteil dabei liegt dann darin, dass jedes Objekt einen Destruktor haben muss, der sich um die Freigabe des Speichers kümmert. Die TObjectList kann somit auch aut. für die Freigabe aller gespeicherten Elemente sorgen, bei der TList musst du dich selbst darum kümmern.

Gruß Der Unwissende
  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 17:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz