Volevo chiedere una domanda.
Sò questo è un mondo arcano ma provare a capirci qualcosa in più non sarebbe male.
Mi domandavo come cavolo funziona un programma che riesce a comprimere dei bytes?
Su alcuni miei progetti ho lavorato molto con la lettura e scrittura di dati binari in serializzazione.
riuscendo a costruire un vero e proprio archivio binario da poter muovermi liberamente al suo interno scegliendo file.
Volendo realizzare un qualcosa di più complesso e rendere impossibile la lettura da qualsiasi altro programma aggiungendo ad esempio degli offset tra una serie di dati e l'altra.
ad esempio:
da 0x00 parte l'header del file, in seugito un seek(30) esempio, e continuando via via con gli altri file.
ma noto che comunque i byte sono byte, cioè sono sempre delle informazioni fondamentali per la ricostruzione o smaterializzazione di un file in un archivio binario.
Alterare o modificare un singolo byte porta inevitabilmente al danneggiamento del file stesso.
La domanda è
Se ad esempio ho un file:
0 = 4D ED 00 90 00 00 00 ED 00 00 00 00 FF
D = FF 00 BB 00 40 00 3E 00 00 00 00 FF 00
Come si fà a comprimere questi dati in modo da non danneggiare il file?
Cioè come faccio a far diventare un file di testo da 10mb in 1mb?
Certo non sono così esperto da riuscire a realizzare un compressore tipo rar ma vorrei capire il suo funzionamento.
|