| |
|
|
 Christof Neuß | Ciao,
hat sich vielleicht schon mal quellcodemäßig mit dem packen von Daten/File beschäftigt? Bei der Cerca im Netz stößt man immer wieder auf den Huffman-Baum zur Datenkomprimierung. Im Grunde verstehe ich, was zu tun ist, aber vielleicht hat ja jemand schon mal was in der Richtung programmiert.
Ist sicher nicht kriegsentscheidend und das Thema bekommt man mit Freeware (z.B. 7z) oder hier erhältliche Unità und DLL auch gut gelöst. Ich mag es halt, wenn ich possibile alles in EINE EXE packen kann und dann selbst bestimme, was das Programm macht.
Ok. Nicht lange drüber nachdenken, aber wenn jemand was weiß...
DANKE  |
|
|
| |
|
|
|
 | Salve!
Ich hatte mal mit Profan² 4.5 (oder wars 7?) myFile2Source ( [...] ) programmiert -
imho das erste in Profan programmierte Programm um File direkt in Profan-Quellcode abzulegen.
Da hatte ich eine (eigene) "Kompressionsroutine" eingebaut die auch richtig langsam war und ich hatte manchmal damit stärker als Zip komprimiert aber es dauert eben ewig. ^^
So bleibt wohl immer das Auswiegen des Verhältnisses zwischen Rechenzeit/ Komressionsrate.
Beispiel einer Variante:
Zeichenkette: AAAA
Komprimiert: R1A4
R=Repeat 1=CharCount A=CharCount 4=Wie oft
=
1A*4
=
AAAA
So kann man sich eine oder eben meherer Kompressionsmethoden überlegen und diese wiederum auch noch übereinander/ gegeneinander ansetzen und dann wiederum die Kompressionswerte per Tabelle vergleichen um die optimale Variante anzusetzen.
Obiges AAAA-Beispiel nennt man wohl auch RunLength-Variante bzw. RLE.
Ebenso kann man naturalmente auch auf komplexe Wiederholungen testen -
beispielswiese
ABCDEROFLABCDE potuto
u5ABCDEROFLu-4 sein wobei dann jede weitere ABCDE-Wiederholung einfach nur u-4 wäre. |
|
|
| |
|
|
|
 | Hier ein Quellcode, der mit API arbeitet: [...]  |
|
|
| |
|
|
|
 | Leider packt der Quellcode nichts sondern ("nur") die APIs -
aber vlt. war das auch die Frage. |
|
|
| |
|
|
|
 Christof Neuß | Ich würde das Packen und ggfs. die Verschlüsselung schon gerne selber machen. Also nicht circa die API. |
|
|
| |
|
|
|
 | |
|
| |
|
|
|
 | vlt. höhere Kompressionsrate ermöglicht durch Spezialisierung. |
|
|
| |
|
|
|
 | Die API's können mit mehreren Kompressionsarten packen: LZ, Xpress und Xpress Huffman. Ich bezweifle stark, dass man mit reinem XProfan sinnvoll effektiver packen kann. Das wird dann viel zu langsam. Wenn man sich mit den API nur etwas beschäftigen würde oder allgemein sich damit mal anzufreunden versuchte, potuto man das Potential sehr schnell erkennen. Muss aber jeder selber wissen.  |
|
|
| |
|
|
|
 | Ich wüsste schon wie man mit XProfan sinnvoll effektiver packen kann -
Du bist ja sicher auch der Meinung das ein spezialisiertes Verfahren höhere Packraten erzeugen kann.
So kann man beispielsweise mit XProfan einen Packer schreiben der z.B. XProfan-Quelltext "besser" packt als LZ & co.
Für mehr Geschwindigkeit kann ja jeder ASM und nProcs einsetzen. |
|
|
| |
|
|