# Datei LZW-Dekomprimieren



## zilti (18. Nov 2007)

Hallo,
Ich hab schon mehr oder weniger verzweifelt das ganze Internet abgesucht, aber ich konnte nirgendwo einen java-Source finden um eine LZW-komprimierte Datei zu entpacken.
Weiss jemand, wie das geht?


----------



## nicht eingeloggt (18. Nov 2007)

http://www.cs.biu.ac.il/~freskom1/AlgProg1/Progs/LZW.java


----------



## zilti (18. Nov 2007)

Danke, aber das hilft mir leider nicht weiter:
"Compression cannot be resolved to a type"
"Dict cannot be resolved to a type"
"Multiple markers at this line
	- emptyBA cannot be resolved
	- ByteArray cannot be resolved to a type"
u.v.a.m...

EDIT: Hab gesehen, im darüberliegenden Verzeichnis hats noch mehr Dateien, werde es übermorgen ausprobieren.


----------



## zilti (20. Nov 2007)

Hm, hab jetzt den Code von hier.

Es scheint, als ob es an meiner Datei liegt:
Undekomprimierbare Datei
Diese ist wie folgt komprimiert:


> Die Datei beginnt mit einem Header, der wie folgt definiert ist:
> 
> typedef struct
> {
> ...


Wie muss ich das machen?


----------



## Gast (20. Nov 2007)

du darfst erst nach dem header mit dem dekomprimieren anfangen


----------



## zilti (20. Nov 2007)

und wie stelle ich das am besten an?
thx


----------



## Gast (20. Nov 2007)

mit nem Stream zum Beispiel

wie machst du es denn zur Zeit?


----------



## zilti (22. Nov 2007)

Zur Zeit mache ich es mit dem von mir oben verlinkten Code.


----------



## zilti (23. Nov 2007)

Wie mach ich denn das?


----------



## Gast (23. Nov 2007)

niemand guckt sich das an und schreibt dir dein programm

gib uns beispiel code wie du es zur Zeit versuchst.


----------



## Murray (23. Nov 2007)

We4nn die Datei vor den eigentlichen komprimierten Daten noch einen Header aus drei ints enthält, dann musst du diesen Header überspringen. Mit dem oben verlinkten Code sollte das gehen, indem du in setFiles eine Zeile einfügst:


```
...
           in = new BufferedInputStream(new FileInputStream(inputFile));
           //--- 3 ints = 3 x 4 bytes überspringen
           for ( int i=0; i< 3*4; i++) in.read();
...
```


----------



## zilti (24. Nov 2007)

Hilft leider nichts, gibt NullPointerException.... Hats bei dir funktioniert?


----------



## zilti (29. Nov 2007)

Hat keiner eine Idee?


----------



## Gast (30. Nov 2007)

Wo gibt es die NPE?


----------



## zilti (30. Nov 2007)

Kannst ja mal mit dem Code oben probieren ( http://www.geocities.com/yccheok/lzw/lzw.html , Downloadlink ist fast ganz unten)
Und mit meiner Datei: http://www.java-forum.org/de/userfiles/user7045/Highscores.loc
Das mit dem Überspringen der Bytes hat leider nix gebracht.


----------



## zilti (24. Dez 2007)

Hab jetzt noch halb ewig dran rumgebastelt, aber noch immer keine Lösung...
Probiere es immer noch mit diesem LZW-Tool diese Datei zu dekomprimieren...
Geht leider nicht...


----------

