Salve,
sarei interessato alla realizzazione di un'applicazione che si occupa di creare un file binario delle differenze (patch) a partire da due file binari.

Ci ho già lavorato sopra, però vorrei sapere se avete qualche consiglio, o ad esempio visto del materiale su questo argomento che credo possa essere stato dibattuto in rete, ma di cui non ho trovato molto.





Ciò a cui ho pesato è fare una lettura byte per byte dei due file di cui interessa creare la patch (ovviamente ai fini pratici questi due file sono tipicamente due versioni di un certo file, una versione più vecchia e l'altra più recente).
Leggendo ciclicamente in modo sequenziale l'i-esimo byte del file1 e l'i-esimo byte del file2, si confronta i due byte letti, se non sono uguali allora devo memorizzare questa differenza individuata. Dunque nel file binario delle differenze (patch) faccio due scritture: il byte del file2 (nell'ipotesi che file2 sia il file più recente) e un numero che corrisponde alla posizione di quel byte nel file2.
Il problema principale è stato quello di ottimizzare la scrittura del numero della posizione per non occupare troppo spazio sul disco.