Ein Index ist sozusagen eine Liste oft mit Zeigern auf die entsprechenden Daten
weöche dann selber sortiert werden und und wo man eventuell noch weitere Daten drin speichern/erstellen kann, welche zur Optimierung des Suchen bzw. Verwaltung dienen.
die Kommentage kann man ja nach dem Laden wieder löschen
und was die Delimiter angeht
- entweder nach dem Laden dein " :: " durch nur ein Zeichen ersetzen
- oder eine extra Funktion erstellen, welche dieses dann beim Auslesen eines Wertepaares trennt
MMF = Memory Mapped File
es wird parktisch ein Speicherbereich innerhalb des Virtuellen Prozessspeichers deines Programms reserviert und mit de Datei verknüpft.
Also es wird erstmal kein "echter"
RAM damit belegt
beim Zugriff auf diesen Speicherbereich läd Windows den nötigen Teil der Datei in die WindowsFileCache und und erstellt einen Link zwischen dem Speicherbereich und dem Speicher (im
RAM) der WindowsFileCache ... diese bereiche werden nun dynamisch (wenn nötig) in die WFC geladen, oder wieder freigegeben und notfalls zurück in die Datei gespeichert (wenn man in diese, Speicherbereich rumschreibt)
in der Auslagerungsdatei landet davon nix.
je mehr physischer
RAM frei ist, desto mehr kann in die WFC geladen werden und ist so schneller verfügbar.
Zitat:
Kann ich irgendwo nachlesen wie es das genau macht, damit ich weis/verstehe wie man effizient Datenformate in den Speicher lesen kann?
da du eine Professional hast und somit die Delphi-SourceCodes bei liegen ... schau doch einfach direkt nach
LoadFromFile liegt im TStringList-Vorfahr TStrings (siehe
Unit Classes.pas)
dort wird die Datei über einen TFileStream in einen String geladen und an TStrings.SetTextStr übergeben
und SetTextStr zerlegt dann den String und übergibt die einzelnen Zeilen dann an die Funktion .Add.