Patchaufbau, -programmierung?

Nabend liebe Wwwler,
mich interessiert was ein Patch en detail macht. Ein Patch behebt kleine Programmierfehler und fügt evtl. Funktionen zum Programm hinzu, das ist klar.Aber wie genau, geht das zB in Delphi vonstatten? Wird einfach das sourcefile durch ein neues ersetzt? Oder ist ein Patch ein eigenständiges Programm, greift auf das sourcefile zu und ändert darin die entsprechenden Quelltextzeilen?Wenn ich z.B. ein Programm geschrieben habe(in Delphi) und entdecke einen Fehler, möchte aber nicht das Programm ändern und neu kompilieren(was natürlich viel einfacher und schneller wäre…), sondern einen Patch dazu schreiben(…, aber das Wissen kann man bestimmt mal gebrauchen:wink:, der die Änderungen vornimmt, wie mache ich das? Die alte(n) Datei(en) [.pas und evtl. .dfm files] einfach überschreiben?
Freue mich über eure Antworten,
Sven

Moien

mich interessiert was ein Patch en detail macht.

Binäres Patch (das was Mircosoft rausgibt) oder Quellcode Patch ?

Aber wie genau, geht das zB in
Delphi vonstatten? Wird einfach das sourcefile durch ein neues
ersetzt?

(Also Quellcodepatch)

Nein. Man nimmt das Orginal und die verbesserte Version der Datei(en). Dann läst man ein diff (=Patch) erstellen. Darin ist exakt vermerkt was geändert wurde. Diese Änderungen kann man auf die Orignale und leicht veränderte Orginale anwenden.

Oder ist ein Patch ein eigenständiges Programm,
greift auf das sourcefile zu und ändert darin die
entsprechenden Quelltextzeilen?

Das hört sich eher nach binären Patches an. Die haben nix mit dem Quellcode am Hut sondern ersetzen oder modifizieren die schon compilierten Dateien.

Wenn ich z.B. ein Programm
geschrieben habe(in Delphi) und entdecke einen Fehler, möchte
aber nicht das Programm ändern und neu kompilieren(was
natürlich viel einfacher und schneller wäre…), sondern einen
Patch dazu schreiben

Dann nimmst du den Quellcode, änderst ihn, kompilierst ihn und testest das ganze erstmal. Dann kannst du immernoch diffs anfertigen.

cu

Danke schon mal für deine Antwort.

Binäres Patch (das was Mircosoft rausgibt) oder Quellcode
Patch ?

Im Allgemeinen…

Nein. Man nimmt das Orginal und die verbesserte Version der
Datei(en). Dann läst man ein diff (=Patch) erstellen. Darin
ist exakt vermerkt was geändert wurde. Diese Änderungen kann
man auf die Orignale und leicht veränderte Orginale anwenden.

Ja gut…aber wie ‚lässt‘ man denn ein diff erstellen, gibts da spezielle Programme zu oder kann man das auch selbst schreiben?

Dann nimmst du den Quellcode, änderst ihn, kompilierst ihn und
testest das ganze erstmal. Dann kannst du immernoch diffs
anfertigen.

Und wie genau fertige ich die jetzt an?

Es gibt also zwei Arten von Patches. Einmal Binäre Patches und andererseits Quelltext Patches. Die einen verändern direkt die compilierten Dateien und die anderen verändern mit Hilfe von diffs die Originaldateien. Richtig so? Kann man so etwas auch selbst programmieren? Man kann bestimmt, aber ist dazu ein großes Prog nötig?

Moien

Ja gut…aber wie ‚lässt‘ man denn ein diff erstellen, gibts
da spezielle Programme zu oder kann man das auch selbst
schreiben?

Dafür gibt es jede Menge Programme:
http://www.linuxmanpages.com/man1/diff.1.php
http://www.linuxmanpages.com/man1/patch.1.php

Selbst das normale MS Word hat eine diff/patch Funktion …

Es gibt also zwei Arten von Patches. Einmal Binäre Patches und
andererseits Quelltext Patches. Die einen verändern direkt die
compilierten Dateien und die anderen verändern mit Hilfe von
diffs die Originaldateien. Richtig so?

jau.

Kann man so etwas auch
selbst programmieren? Man kann bestimmt, aber ist dazu ein
großes Prog nötig?

Es ist schon ein bisschen Arbeit, aber nix weltbewegendes. Wenn dir RegExps leicht fallen kannst auch problemlos ein diff/patch Programm schreiben.

cu

Dafür gibt es jede Menge Programme:
http://www.linuxmanpages.com/man1/diff.1.php
http://www.linuxmanpages.com/man1/patch.1.php

Scheint so als seien die für Linux…werd ma schaun obs auch was für Windows gibt. Danke für die Links.

Selbst das normale MS Word hat eine diff/patch Funktion …

Um Word zu patchen? In der Hilfe von Word steht bei mir nix dazu. Naja egal :smile:

Es ist schon ein bisschen Arbeit, aber nix weltbewegendes.
Wenn dir RegExps leicht fallen kannst auch problemlos ein
diff/patch Programm schreiben.

mmm…ich glaub, für’s erste nehm ich doch lieber die Progs aus dem Netz. Vielleicht wenn ich was mehr geproggt hab, dann versuch ich mich mal an sowas :smile:
Danke für deine Antworten.
Bis denn