Einzelnen Beitrag anzeigen

hackyie

Registriert seit: 3. Nov 2003
50 Beiträge
 
#1

eigenes Dateiformat, Effizienz erhöhen, Denkanstöße gesucht

  Alt 13. Aug 2006, 22:18
Ich bräuchte mal ein paar gedanken von Leuten, die das vielleicht sogar selbst schon mal gemacht haben. Es geht um das uralte Ding ein eigenes Archivformat (ohne Kompression) zu erstellen, so dass ich mehrere Dateien in einer Datei speichern und einzeln wieder herauslesen kann. Ich habe die Unit fertig und sie läuft auch, nur die Performance ist etwas am Boden ^^

Mein jetziges Dateiformat:
  • Anzahl Dateien
  • Dateiname 1
  • Dateiname 2
  • Dateiname n
  • Dateigröße 1
  • Dateigröße 2
  • Dateigröße n
  • Offset 1
  • Offset 2
  • Offset n
  • Datei-Inhalt 1
  • Datei-Inhalt 2
  • Datei-Inhalt n

Problem ist klar, wenn ich eine von 11.000 Dateien haben will, muss ich den kompletten Header auslesen (30.000 Lesevorgänge), um mir dann aus den Arrays den richtigen Offset zum richtigen Namen zu suchen und dann erst zum Offset zu springen.

Wie mache ich das besser? Ich könnte das ganze Blockweise schreiben also [Anzahl][Name1][Größe1][Offset1]... Dann bleibt aber das Problem, dass ich auch (fast) alles auslesen muss, weil die Namen ja strings sind und somit die Blöcke nie gleich groß. Und wenn ich Strings fester Länge nehme habe ich das Problem gelöst, verschwende aber Speicherplatz. Weitere Ideen?
Thread(this).Post(this).terminate;
  Mit Zitat antworten Zitat