ReadFile + OTF Kompression ("Wrapper")

13/08/2010 - 19:36 von Peter Mairhofer | Report spam
Hi,

Ich habe eine Library die eine große (ca. 100MB) Datendatei liest. Die
Library selbst sowie das Datenformat ist zu komplex um sie abzuàndern.

Diese 100MB möchte ich gerne etwas stutzen.

Die Library liest nur von dieser Datei und die Datendatei kann ich
selbst beliebig vorverarbeiten.

Der Sourcecode ist vorhanden und in dem Megaberg an Code gibt es eine
Funktion die das rohe Einlesen der Datei macht. Dieser Funktion wird der
Offset und die Anzahl der zu lesenden Bytes übergeben. Danach wird
mittels SetFilePointer() zur passenden Stelle gesprungen und mit
ReadFile() gelesen.

Genau hier könnte ich einhaken und diese Funktion durch eine ersetzen,
die die Daten "on the fly" dekomprimiert. Allerdings muss ich dazu
natürlich irgendwie einen echten Offset in einen "komprimierten"
umrechnen können wozu sicher ein darauf optimierter Algorithmus möglich
ist (z.B. einer der in Blöcken arbeitet oder so).

Gibt es für sowas vielleicht schon fertige Lösungen bzw. vielleicht
sogar einen ReadFile Wrapper der den ganzen Algorithmus vollstàndig kapselt?

LG Peter
 

Lesen sie die antworten

#1 Thomas Koller
13/08/2010 - 23:13 | Warnen spam
Peter Mairhofer wrote:
Ich habe eine Library die eine große (ca. 100MB) Datendatei liest. Die
Library selbst sowie das Datenformat ist zu komplex um sie abzuàndern.

Diese 100MB möchte ich gerne etwas stutzen.

Die Library liest nur von dieser Datei und die Datendatei kann ich
selbst beliebig vorverarbeiten.

Der Sourcecode ist vorhanden und in dem Megaberg an Code gibt es eine
Funktion die das rohe Einlesen der Datei macht. Dieser Funktion wird der
Offset und die Anzahl der zu lesenden Bytes übergeben. Danach wird
mittels SetFilePointer() zur passenden Stelle gesprungen und mit
ReadFile() gelesen.

Genau hier könnte ich einhaken und diese Funktion durch eine ersetzen,
die die Daten "on the fly" dekomprimiert. Allerdings muss ich dazu
natürlich irgendwie einen echten Offset in einen "komprimierten"
umrechnen können wozu sicher ein darauf optimierter Algorithmus möglich
ist (z.B. einer der in Blöcken arbeitet oder so).

Gibt es für sowas vielleicht schon fertige Lösungen bzw. vielleicht
sogar einen ReadFile Wrapper der den ganzen Algorithmus vollstàndig kapselt?



Ja. Einfach rechte Maustaste -> Eigenschaften -> Attribute erweitert
-> Inhalt komprimieren

Damit hast die 100MB am Datentràger gestutzt und brauchst nichtmal
am Programm was àndern, da Windows für dich den Wrapper macht.

Tom

Ähnliche fragen