RLE - Längenkomprimierung
Übersicht

![]() |
OfenrohrBetreff: RLE - Längenkomprimierung |
![]() Antworten mit Zitat ![]() |
---|---|---|
hallo,
diesen text hab ich mir durchgelesen und versucht nach ihm ein de/komprimierungs programm zu schreiben: http://de.wikipedia.org/wiki/L...nkodierung das verschlüsselungsprogramm hat sehr gut funktioniert. es hat die größe um etwa 1/3 reduziert. leider hab ich noch probleme mit dem dekomprimieren. es kommt nicht das richtige heraus.... so hier der code: komprimieren: Code: [AUSKLAPPEN] AppTitle "Komprimierer" Graphics 800,600,32,2 Print "RLE - Längenkomprimierung" Print "Bitte warten sie... file = ReadFile("c:\hallo.txt") file2 = WriteFile("c:\hallo2.txt") same_bytes% = 0 lbyte% = 0 byte% = 0 While Not Eof(file) lbyte = byte byte = ReadByte(file) If lbyte = byte Then same_bytes = same_bytes + 1 Else WriteByte(file2,same_bytes) WriteByte(file2,byte) same_bytes = 0 EndIf Wend CloseFile(file) CloseFile(file2) Print "Komprimieren erfolgreich" Print "Drücken sie eine Taste zum Beenden..." WaitKey End und hier zum dekomprimieren: Code: [AUSKLAPPEN] AppTitle "Dekomprimierer" Graphics 800,600,32,2 Print "RLE - Längendekomprimierung" Print "Bitte warten sie... file = ReadFile("c:\hallo2.txt") file2 = WriteFile("c:\hallo3.txt") byte% = 0 same_bytes% = 0 While Not Eof(file) same_bytes = ReadByte(file) byte = ReadByte(file) For i = 1 To same_bytes WriteByte(file2,byte) Next Wend CloseFile(file) CloseFile(file2) Print "Dekomprimieren erfolgreich" Print "Drücken sie eine Taste zum Beenden..." WaitKey End ich hoffe ihr könnt mir helfen... mfg ofenrohr |
||
Ofenrohr.net |
CodeMaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn nicht zweimal die selben Bytes kommen, markierst du das
durch ein Nullbyte. Beim Entpacken der Datei fängst du jedoch bei 1 an zu zählen. So sollte es funktionieren:Code: [AUSKLAPPEN] same_bytes = readbyte(file)
byte = readbyte(file) for i = 0 to same_bytes writebyte(file2, byte) next |
||
Dies ist ein Text, der an jeden Beitrag von dir angehängt werden kann. Es besteht eine Limit von 500 Buchstaben.
Zuletzt bearbeitet von CodeMaster am Mo Apr 01, Parse error: syntax error, unexpected ';' in htdocs\viewtopic.php on line 102 |
![]() |
Ofenrohr |
![]() Antworten mit Zitat ![]() |
---|---|---|
danke,
hab in den griff bekommen... mfg ofenrohr |
||
Ofenrohr.net |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group