![]() |
Re: eigenes Dateiformat, Effizienz erhöhen, Denkanstöße gesu
Zitat:
Wenn Du aber wirklich selbst speichern willst, schlage ich Folgendes vor: 1. Inhalte und Header in getrennte Dateien speichern: Archiv.Dat und Archiv.Dah 2. Die Inhalte werden einfach aneinander gehängt; dann ist der Dateityp auch egal. Du wirst sowieso mit FileStream o.ä. arbeiten. 3. Die Header-Datei ist eine normale Datenbanktabelle: 3a. Ich empfehle (als NET-Entwickler) DataSet i.V.m. XML-Datei. 3b. Alternativ ist jede andere Tabellenart geeignet, möglichst eine mit Index auf die laufende Nummer (die ist als PrimaryKey immer und überall dringendst zu empfehlen) und auf den Dateinamen. 3c. Wenn die Header-Datei beim Programmstart vollständig eingelesen wird, kannst Du auch mit einer Memory-Tabelle (ich hatte früher mit den Rx-Tools RxMemTable verwendet) und einer CSV-Textdatei mit der BDE arbeiten. 4. Die Header-Datei erhält etwa folgende Struktur nach Deinen Vorstellungen: ID, Dateiname (je nach Verwendung mit oder ohne Pfad), Dateigröße, FileDateTime 5. Mit dem Index (oder im Speicher mit einfacher Suchfunktion) holst Du Dir die ID der gewünschten Datei. 6. Der benötigte Offset berechnet sich ruckzuck:
SQL-Code:
Wenn zwischendurch Dateien gelöscht werden, muss dies natürlich angepasst werden, z.B. durch verschachteltes SELECT i.V.m. COUNT(*) o.ä.
SELECT SUM(Dateigröße) AS Offset FROM Header WHERE ID < :AktuelleID
Ich hoffe, das nützt Dir. Jürgen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:01 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