GCompare / GPatch 1.4 --------------------- Autor: Ralf Gruner, An der Sense 5a, D-02779 Großschönau ralf.gruner@t-online.de GCompare ist ein Programm zum Erzeugen von Patch-Dateien für den Vertrieb von Updates irgendwelcher Programme oder anderer Dateien. GPatch dient dazu, diese Updates auszuführen. Natürlich weiß ich, daß es bereits brauchbare Patch-Generatoren für den Amiga gibt. Aber leider habe ich nicht SAS-C (das wäre anders, wenn SAS den Compiler noch verkaufen würde), und das Freeware-Programm, das ich im Aminet gefunden habe, hat als erstes einen Absturz meines Rechners verursacht und sich damit sofort disqualifiziert. Deshalb habe ich also einen neuen Patcher geschrieben. Die wesentlichen Eigenschaften sind: ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ -Die Patch-Datei kann Patches für eine beliebige Anzahl von Dateien enthalten. Dadurch ist es möglich, Updates für mehrere Versionen eines Programms zusammen zu vertreiben. Wenn sich die Verzeichnis-Struktur des Produktes nicht geändert hat, findet der Patcher selbständig die benötigten Patches, ohne daß sich Ihr Skript darum kümmern muß. Außerdem können Sie die Patches für verschiedene Dateien in einer einzigen Patch-Datei unterbringen. -Das Format der Patch-Datei ist bezüglich der Dateigröße aufwendig optimiert. Obwohl ich nicht allzuviele ähnliche Programme kenne, möchte ich behaupten, daß GCompare die kürzesten Patchdateien aller verfügbarer Patchprogramme erzeugt. -Um zu verhindern, daß beim Anwender beschädigte Dateien ankommen, enthalten die Programme eine sehr zuverlässige Fehlererkennung (32-Bit-CRC-Signaturen für alle Dateien). Wenn keine Fehlermeldungen auftreten, dann können Sie sicher sein, daß die Ergebnisse des Patch-Vorgangs perfekt sind. Benutzung: ¯¯¯¯¯¯¯¯¯¯ GCompare und GPatch sind Shell-Befehle. Syntax: GCompare GPatch Wenn GCompare eine bereits bestehende Patchdatei findet, dann hängt es die Patches an diese Datei an. GPatch wählt die passenden Patches anhand der Dateilänge und der CRC-Signatur aus. Wenn die Programme keine Fehlermeldungen ausgeben, dann waren die jeweiligen Vorgänge erfolgreich. Schwerwiegende Fehler werden immer von einem Return-Code größer als 9 begleitet. GCompare braucht genug Arbeitsspeicher, um die alte, die neue und die Patchdatei gleichzeitig im Speicher halten zu können. Wenn GCompare genug Speicher findet (10 mal die Dateigröße der alten Datei), benutzt es einen schnellen Suchalgorithmus (verkettete Listen), andernfalls arbeitet es mit linearer Suche. Als Beispiel für die Anwendung der Patchprogramme habe ich Skripts für das Erzeugen und Anwenden einer Patch-Datei eines fiktiven Programms beigelegt. In dem Beispiel wird davon ausgegangen, daß verschiedene ältere Versionen des Programms "MyProgram" in einem Archiv namens "Archive" liegen. Der Patch für das Programm und eine Anleitung "MyProgram.readme" wird in diesem Beispiel direkt auf der Programmdiskette "MyProgram" ausgeführt. Vertrieb: ¯¯¯¯¯¯¯¯¯ GCompare und GPatch sind Freeware. Sie können beliebig eingesetzt werden, einschließlich der Anwendung für kommerzielle Programme. Wenn Sie aber Wert auf zukünftige Updates legen, dann senden Sie mir bitte eine eMail, damit ich weiß, daß es überhaupt Benutzer der Programme gibt. Es gibt noch einiges zu optimieren, aber die Zeit dafür nehme ich mir nur, wenn es auch jemand braucht. Die Änderungsliste der Programme finden Sie in der englischen Anleitung. Und (wer's lesen will): Rechtliches ¯¯¯¯¯¯¯¯¯¯¯ Bei der Entwicklung der Software wurde mit allergrößter Sorgfalt vorgegangen. Trotzdem sind Fehler nicht vollständig ausgeschlossen. Der Autor übernimmt keine Haftung für Schäden, die direkt oder indirekt auf die Benutzung seiner Programme zurückzuführen sind. Ralf Gruner