mccae
Senfdazugeber
Hallo, tutorials.de Gemeinde!
Ich würde gerne, wie der Titel bereits sagt, einen eigenen Diff Algorithmus entwickeln (Nein, ich möchte nicht auf fertige API's zugreifen).
Dadurch würde ich gerne die Unterschiede zwischen zwei Dateien erkennen und eine Delta-Datei erstellen, die als Patch fungiert.
Es geht hier also nicht wie beim normalen diff um Textdateien, sonderm um Differenzierung auf byte-level.
Ich habe mir bereits entsprechende Einführungen angesehen, und denke an folgendes System:
Es existiert Originaldatei 'A' und eine neuere Version der Datei 'B'.
Um die zu übertragende Datenmenge so gering wie möglich zu halten, wird die Datei 'B' nicht direkt an den Kunden ausgeliefert.
Durch Erkennen von Gemeinsamkeiten zwischen den beiden Dateien, soll eine Delta-File enstehen, mit der man Originaldatei 'A' patchen kann.
Diese Delta-Datei hat nur einen bruchteil der Größe der neuen Datei.
Jedoch stehe ich derzeit auf der Leitung, und ich habe folgende Frage:
Wie kann ich bytefolgen, die in Datei 'A' vorkommen, in Datei 'B' wiedererkennen (finden) und somit bei der Deltadatei auslassen?
Das Problem ist ja, dass bestimmte byte-folgen bei Datei 'A' relativ weit vorne stehen können, und bei Datei 'B' irgendwoanders seien können - oder umgekehert.
Ich habe leider nichts woran ich mich orientieren kann.
Mir fällt auch keine gute Möglichkeit ein, dieses Problem zu lösen.
Könnt ihr mir helfen?
Mfg
Martin
Ich würde gerne, wie der Titel bereits sagt, einen eigenen Diff Algorithmus entwickeln (Nein, ich möchte nicht auf fertige API's zugreifen).
Dadurch würde ich gerne die Unterschiede zwischen zwei Dateien erkennen und eine Delta-Datei erstellen, die als Patch fungiert.
Es geht hier also nicht wie beim normalen diff um Textdateien, sonderm um Differenzierung auf byte-level.
Ich habe mir bereits entsprechende Einführungen angesehen, und denke an folgendes System:
Es existiert Originaldatei 'A' und eine neuere Version der Datei 'B'.
Um die zu übertragende Datenmenge so gering wie möglich zu halten, wird die Datei 'B' nicht direkt an den Kunden ausgeliefert.
Durch Erkennen von Gemeinsamkeiten zwischen den beiden Dateien, soll eine Delta-File enstehen, mit der man Originaldatei 'A' patchen kann.
Diese Delta-Datei hat nur einen bruchteil der Größe der neuen Datei.
Jedoch stehe ich derzeit auf der Leitung, und ich habe folgende Frage:
Wie kann ich bytefolgen, die in Datei 'A' vorkommen, in Datei 'B' wiedererkennen (finden) und somit bei der Deltadatei auslassen?
Das Problem ist ja, dass bestimmte byte-folgen bei Datei 'A' relativ weit vorne stehen können, und bei Datei 'B' irgendwoanders seien können - oder umgekehert.
Ich habe leider nichts woran ich mich orientieren kann.
Mir fällt auch keine gute Möglichkeit ein, dieses Problem zu lösen.
Könnt ihr mir helfen?
Mfg
Martin
Zuletzt bearbeitet: