[PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
ChrigiGee
Beiträge: 125
Registriert: 18.07.2024 12:14
Computerausstattung: Lenovo ThinkPad i7, 32GB Ram, 1TB SSD
PB 6.11 LTS, proGUI, IceDesigner
Wohnort: Bern

Re: Prozedure mit variabler Abhängigkeit ?

Beitrag von ChrigiGee »

Hallo Axolotl,
Hallo @all,

die Proceduren: Ich gestehe zu, ich habe mich dieser beiden "noch" nicht gross zugewandt.
Alles erklären könnte ich hierzu auch nicht, den Ansatz der zu Patchenden Dateien, fand ich so GUT,
dass ich nach weiteren Lösungen zu suchen mich verabschiedet hatte.

Ursprungsgespräch: Die Wahl des Topic Titels lässt sich begründen,
als dass ich nicht gleich mit diesem alten Source anfangen wollte in die Runde Fragen zu stellen.

Mein Ansatz war, ich versuche mich im Selbststudium und suche auch entsprechend nach Lösung
Wegen / Möglichkeiten.

Mein Verständnis hinkte mit dem Grundsatz, ich kann eine Prozedur nicht ausführen in einer Schleife.
Ich wusste auch nicht, wie ich die Frage verständlicher stellen konnte.

Ich wollte nicht den Eindruck erwecken, ich möchte direkte Hilfe zum alten Code.
Oder dass ich in dem Sinne eine fertige Lösung suchte, ich wollte auch etwas lernen.

Da meine Fragestellung nicht korrekt war, wusste ich zu Beginn also noch nicht.

Im Verlauf der Diskussion stellte sich natürlich immer konkreter auch der Zusammenhang zwischen meiner
Arbeit und dem bestehenden Source Code heraus.

Somit wäre zum Zeitpunkt heute Abend der Titel falsch und ich muss ihn anpassen.
Die Diskussion ist zum Gesamtprojekt "Patch Maker" herangewachsen.

Ich hoffe, dass dies so dem entspricht, was Deine Überlegungen zu dieser Diskussion hier am nächsten kommt.

Im Grossen und Ganzen wäre dies das Projekt, auf das alles aufbauen würde.
Ein alter Source Code, überarbeitet für PureBasic 6, mit einer grafischen Oberfläche.

NEUER Diskussionstitel: "Patch Maker"…

Ich wünsche Euch allen einen schönes Wochenende
Christian
Wer nicht fragt, der nichts lernt.
Wer keine Fehler macht, kann sich nicht verbessern.
Das Mysterium, ein wandelndes Lexikon. :mrgreen:

Wer Fragen zu meinem Textstil hat oder sich wundert über mich,
der darf seelenruhig mich direkt ansprechen. Ich beiße noch nicht.
Benutzeravatar
ChrigiGee
Beiträge: 125
Registriert: 18.07.2024 12:14
Computerausstattung: Lenovo ThinkPad i7, 32GB Ram, 1TB SSD
PB 6.11 LTS, proGUI, IceDesigner
Wohnort: Bern

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Beitrag von ChrigiGee »

Hallo und guten Abend @all,

da ich den Post insofern mutierte zu "PatchMaker" und mein Post zuvor etwas extrem lange ist,
hier nur eine kleine Ergänzung.

Die vorhandene Source habe ich auf pcloud zur Verfügung gestellt.
Für die, welche sich das Material gerne mal anschauen möchten.

Ich habe leider seit Freitag nicht gerade sehr viel daran gearbeitet, man ist ztw. auch mal
anderweitig beschäftigt.

https://e.pcloud.link/publink/show?code ... u79uNIhr7X

Liebe Grüsse und Wünsche für das Wochenende aus dem Backofen Bern
Christian
Wer nicht fragt, der nichts lernt.
Wer keine Fehler macht, kann sich nicht verbessern.
Das Mysterium, ein wandelndes Lexikon. :mrgreen:

Wer Fragen zu meinem Textstil hat oder sich wundert über mich,
der darf seelenruhig mich direkt ansprechen. Ich beiße noch nicht.
Benutzeravatar
ChrigiGee
Beiträge: 125
Registriert: 18.07.2024 12:14
Computerausstattung: Lenovo ThinkPad i7, 32GB Ram, 1TB SSD
PB 6.11 LTS, proGUI, IceDesigner
Wohnort: Bern

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Beitrag von ChrigiGee »

Hallo und guten Morgen @all,

Ich bin momentan wieder an, die einen oder anderen Punkte in meinem Projekt zu entschlüsseln.
Zwei Fragen habe ich, eine direkt zum Code und eine Allgemein.

[*] langsam wir das Projekt doch etwas umfangreicher, mit diversen Anpassungen hier und da verliere ich
so etwas den Überblick.

Alleine im Source Code, die entsprechenden Dokumentationen sind das eine, wie Handhabt Ihr Projekte,
Gibt es eine Art von "MS Project" Tool, mit dem ich so mir meine Projekte arbeiten Dokumentieren kann
oder löst Ihr es wirklich mit den Dokumentierungen im Source?

[*] kann ich in einer Procedure mit Sprungmarken arbeiten, wenn diese jeweils am Ende einer "Schleife" ausgeführt
werden sollen, zum Beispiel aktualisieren der gespeicherten Preferences.

Das Speichern der Preferences wird in 4 Ebenen immer wieder gemacht, so könnte ich doch anstelle 4-mal
den Source zum Speichern der Werte mittels Sprungmarke auslösen und danach zum eigentlichen Teil zurückkehren.

Errechnen Wert A Speichern Wert A danach weiter Berechnen Wert B Speichern Wert B weiter zu Berechnen Wert C
GoSub oder Goto Befehl oder so ähnlich oder direkt über die Sprungmarke.

Vielen Dank für Euer enormes Wissen, dass Ihr mit mir / uns allen teilt.

Liebe Grüsse aus dem sonnigen Bern
Christian
Wer nicht fragt, der nichts lernt.
Wer keine Fehler macht, kann sich nicht verbessern.
Das Mysterium, ein wandelndes Lexikon. :mrgreen:

Wer Fragen zu meinem Textstil hat oder sich wundert über mich,
der darf seelenruhig mich direkt ansprechen. Ich beiße noch nicht.
Axolotl
Beiträge: 266
Registriert: 31.12.2008 16:34

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Beitrag von Axolotl »

Hallo ChrigiGee,

meine 'Programmier-Projekte' sind nicht so groß, dass ich dafür extra PM-Tools brauche.
Ich nutze gerne Kommentarblöcke, die ich mit Hilfe von Standards zusammenklappen kann....

Code: Alles auswählen

;{ Begin of Description 
; .... and ... 
;} End of Description  
Ich nutze für besondere Stellen die Issues (TODO, FIXME, ....).
Darüber hinaus ist die Aufteilung des Sourcecodes in systematische Include-Dateien sinnvoll.
Auch dass ist abhängig vom eigenen Stil (Programming Style Guide).
Für häufig verwendete Konstanten, Variablen, Marcos oder Proceduren habe ich einen bzw. mehrere Include-Dateinen, die ich immer wieder einbinden kann.

Ich für meinen Teil arbeite viel mit Proceduren und (niemals) Gosub oder Goto.
Natürlich darf man die Befehle verwenden. Aber ich bin nun einmal der Meinung, dass
nicht alles was der Compiler erlaubt auch (für mich) okay ist.

Z.B. Lesen und Speichern von Preferenzen:
Ich verwende hier nahezu immer ReadPreferences() oder ApplyPreferences() und StorePreferences().
Die rufe ich meistens einmal am Anfang und am Ende auf, weil ich Daten speicher die beim nächsten Start wieder da sein sollen. Dazu gehört die Position und Größe der Fenster, usw.
Using PureBasic latest stable version and current alpha/beta (x64) on Windows 11 Home
Benutzeravatar
ChrigiGee
Beiträge: 125
Registriert: 18.07.2024 12:14
Computerausstattung: Lenovo ThinkPad i7, 32GB Ram, 1TB SSD
PB 6.11 LTS, proGUI, IceDesigner
Wohnort: Bern

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Beitrag von ChrigiGee »

Hallo Axolotl,

Vielen Dank für Deine Sichtweise, na ja, ich denke nicht, dass mein Projekt hier so gross wäre,
ich jedoch weniger Kenntnisse verfüge und so etwas mehr überfordert bin mit der Menge an
Informationen, die ich bereits verarbeitet habe.

Das so der Gedanke zum externen Tool.

Aber dann ist es doch gut, ich Kommentieren so viel wie möglich im Source.

Danke auch mit dem Auslagern anstelle von GoTo oder GoSub, dann war das zu Beginn mit dem
reinen patcher oder Patch erstellen als externe Includ Datei erweiterbar auf weitere Elemente
welche den Hauptteil unübersichtlicher gestalten lassen sicher von Vorteil.


Dann werde ich soviel ich kann in diese Struktur Variante bauen und so den Haupt-Teil verjüngen
können, und da bin ich dann auch dankbar.

Einen schönen Samstag hoffentlich bei Dir und allen anderen auch mit Sonne
Christian
Axolotl hat geschrieben: 07.09.2024 13:21 Hallo ChrigiGee,

meine 'Programmier-Projekte' sind nicht so groß, dass ich dafür extra PM-Tools brauche.
Ich nutze gerne Kommentarblöcke, die ich mit Hilfe von Standards zusammenklappen kann....

Code: Alles auswählen

;{ Begin of Description 
; .... and ... 
;} End of Description  
Ich nutze für besondere Stellen die Issues (TODO, FIXME, ....).
Darüber hinaus ist die Aufteilung des Sourcecodes in systematische Include-Dateien sinnvoll.
Auch dass ist abhängig vom eigenen Stil (Programming Style Guide).
Für häufig verwendete Konstanten, Variablen, Marcos oder Proceduren habe ich einen bzw. mehrere Include-Dateinen, die ich immer wieder einbinden kann.

Ich für meinen Teil arbeite viel mit Proceduren und (niemals) Gosub oder Goto.
Natürlich darf man die Befehle verwenden. Aber ich bin nun einmal der Meinung, dass
nicht alles was der Compiler erlaubt auch (für mich) okay ist.

Z.B. Lesen und Speichern von Preferenzen:
Ich verwende hier nahezu immer ReadPreferences() oder ApplyPreferences() und StorePreferences().
Die rufe ich meistens einmal am Anfang und am Ende auf, weil ich Daten speicher die beim nächsten Start wieder da sein sollen. Dazu gehört die Position und Größe der Fenster, usw.
Wer nicht fragt, der nichts lernt.
Wer keine Fehler macht, kann sich nicht verbessern.
Das Mysterium, ein wandelndes Lexikon. :mrgreen:

Wer Fragen zu meinem Textstil hat oder sich wundert über mich,
der darf seelenruhig mich direkt ansprechen. Ich beiße noch nicht.
Benutzeravatar
ChrigiGee
Beiträge: 125
Registriert: 18.07.2024 12:14
Computerausstattung: Lenovo ThinkPad i7, 32GB Ram, 1TB SSD
PB 6.11 LTS, proGUI, IceDesigner
Wohnort: Bern

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Beitrag von ChrigiGee »

Hallo @all,

so wieder mal ein kleines UpDate.
Bitte Source ist noch nicht ins Schön geändert, ich habe es sowie ich's habe mal gepackt,
Problematik momentan welche mir stellt, mit der pref / ini Datei.

Bei den Angaben zu prefs hab ich leider nicht gesehen, ob es sich auch nur update der Daten handelt oder
die ganze Datei ersetzt.

Wenn ich jetzt bei File 1 starte, sieht die Prefs noch OK aus.
Bereits bei File 2 habe ich ein Problem, File 1 ist verschwunden.

Ich habe noch nicht herausbekommen, ob ich nur NEUE die gesamte Datei ersetzen kann,
denn ich dachte bei den ini konnte man die Sektion updaten, welche sich geändert hatte
und das fand ich nirgends in der Hilfe.

Ich hoffe, ich kann das in den Griff bekommen, dann wäre ich beim patcher resp. Patch erstellen bereits wieder einen
sehr grossen Schritt weiter.

Ich wünsche Euch allen einen schönen Samstagabend.
Liebe Grüsse aus dem doch warmen Bern
Christian

myPA.z7
Wer nicht fragt, der nichts lernt.
Wer keine Fehler macht, kann sich nicht verbessern.
Das Mysterium, ein wandelndes Lexikon. :mrgreen:

Wer Fragen zu meinem Textstil hat oder sich wundert über mich,
der darf seelenruhig mich direkt ansprechen. Ich beiße noch nicht.
Benutzeravatar
H.Brill
Beiträge: 496
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Beitrag von H.Brill »

Ist doch bei den Preferenzes ähnlich.
Wenn du natürlich mehrmals die gleiche Gruppe beschreibst, wird das alte darin auch gelöscht.
Ist etwa genauso, wie bei den INI-Dateien die [].
Du kannst ja hier genauso die Group wechseln und darin dein PrefernceString usw. reinschreiben.
Mußt nur aufpassen, daß du keine gleichen Gruppennamen hast. Ich hatte sogar mal damit eine
Datenbank gemacht, indem ich die Gruppen einfach durchnumerierte (bei INI : [1] [2] ) und die
Anzahl Datensätze in eine extra Gruppe gespeichert hatte. Sowas geht auch gut bei den Inidateien.

Erkläre mal, was du alles darin speichern möchtest. Dann kann man eine Vorgehensweise finden.
PB 6.10
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Beitrag von Kiffi »

<OT>

ist schon beeindruckend, wie man so einen kurzen Code mit sechs Gadgets und einer Prozedure auf acht Dateien aufblähen und totdiskutieren kann. :shock:

</OT>
a²+b²=mc²
Benutzeravatar
H.Brill
Beiträge: 496
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Beitrag von H.Brill »

Vielleicht noch ein anderes Beispiel. Manchmal ist es in der Hilfe nicht so direkt ersichtlich.

Code: Alles auswählen

CreatePreferences("Spieler.pref", #PB_Preference_GroupSeparator)
meinevar$ = "Hallo"


  PreferenceGroup("Willi")
  WritePreferenceString("Datum", FormatDate("%dd.%mm.%YYYY", Date())) 
    WritePreferenceLong ("Bahn", 1)
    WritePreferenceLong ("Punkte", 100)     ; Punkte = 100
    WritePreferenceString("meineVar", meinevar$)
  
  PreferenceGroup("Maria")
  WritePreferenceString("Datum", FormatDate("%dd.%mm.%YYYY", Date())) 
    WritePreferenceLong ("Bahn", 5)
    WritePreferenceLong ("Punkte", 80)     ; Punkte = 80 
  ; Schließt die Preference-Datei
   ClosePreferences()
    
   If OpenPreferences("Spieler.pref")
       ExaminePreferenceGroups()
       While NextPreferenceGroup()
         texte$ = texte$ + PreferenceGroupName() + #LF$
         ExaminePreferenceKeys()
         While  NextPreferenceKey()                          
           texte$ = texte$ + PreferenceKeyName() + " = " + PreferenceKeyValue() + #LF$
         Wend
         texte$ = texte$ +  #LF$
       Wend
       Debug texte$
       ClosePreferences()
   EndIf
 
Hier siehst du, daß Keys (Datum, Bahn, Punkte) immer die gleichen sein können, nur mit verschiedenen Values.
Halt nur in verschiedenen Gruppen.
PB 6.10
Benutzeravatar
ChrigiGee
Beiträge: 125
Registriert: 18.07.2024 12:14
Computerausstattung: Lenovo ThinkPad i7, 32GB Ram, 1TB SSD
PB 6.11 LTS, proGUI, IceDesigner
Wohnort: Bern

Re: [PROJEKT] Patch Maker - erstellen Patch File für Anwendungen z.b.

Beitrag von ChrigiGee »

Hallo H. Brill,

Bei der GUI ist alles sauber, man sieht die Pfade, resp. die Datei.
Leider habe ich diese Variablen beim Aufrufen der Procedure nicht mehr vorhanden.
Na ja, vielleicht auch mit noch zu geringem Wissen über die gesamte Struktur.

So meine nächste Überlegung, ich mache eine preference Datei welche ich bei der
GUI erstelle und habe, und die patchmaker Procedure übernehmen kann.

Mit grosser Sicherheit gibt es elegantere Wege meine Fehler zu lösen, manchmal ohne das Wissen
steht man vor einem grossen Zaun und versucht kleine Löcher zu suchen.

Ich würde die 3 Pfade mit Datei in diese Pref Datei eintragen.
Mein Ansatz für jedes Verzeichnis & Datei ein Eintrag.

Variable Datei 1 = C:\Source\meine.exe
Variable Datei 2 = C:\Target\meine.exe
Variable Datei 3 = C:\patch\mein-patch.ptc

Speichere ich Variable 2 in die prefs ist Variable 1 wieder gelöscht in der "ini" Datei.

Vielleicht hab ich einen falschen Ansatz verfolgt, ich werde weiter versuchen.

Gruppe Source
Gruppe Target
Gruppe patch

Würde somit meine bestehende Problematik aufheben, wenn ich Dich richtig verstehe.

Grüsse aus dem regnerischen Bern
Christian
H.Brill hat geschrieben: 07.09.2024 20:01 Ist doch bei den Preferenzes ähnlich.
Wenn du natürlich mehrmals die gleiche Gruppe beschreibst, wird das alte darin auch gelöscht.
Ist etwa genauso, wie bei den INI-Dateien die [].
Du kannst ja hier genauso die Group wechseln und darin dein PrefernceString usw. reinschreiben.
Mußt nur aufpassen, daß du keine gleichen Gruppennamen hast. Ich hatte sogar mal damit eine
Datenbank gemacht, indem ich die Gruppen einfach durchnumerierte (bei INI : [1] [2] ) und die
Anzahl Datensätze in eine extra Gruppe gespeichert hatte. Sowas geht auch gut bei den Inidateien.

Erkläre mal, was du alles darin speichern möchtest. Dann kann man eine Vorgehensweise finden.
Wer nicht fragt, der nichts lernt.
Wer keine Fehler macht, kann sich nicht verbessern.
Das Mysterium, ein wandelndes Lexikon. :mrgreen:

Wer Fragen zu meinem Textstil hat oder sich wundert über mich,
der darf seelenruhig mich direkt ansprechen. Ich beiße noch nicht.
Antworten