Platzhalter in Programm1.exe mit Programm2.exe verändern
Verfasst: 23.11.2005 01:28
Ich habe Kenntnisse in PowerBasic für DOS, VBA und VB6.
In PureBasic bin ich noch Anfänger.
Ich bin heute dem PureBoard-Forum beigetreten, weil ich ein Problem habe, in dem ich nicht weiterkomme.
Ich habe in der DataSection eines Musterprogramms Programm1.exe einen Platzhalterstring, den ich bei Bedarf mit Hilfe einer Programm2.exe ersetzen möchte.
Beispiel:
Ich kann die Programm1.exe wie eine Datei mit Programm2.exe öffnen und in den Speicher einlesen.
Nach Aktualisierung schreibe ich den veränderten Speicherbereich zurück in die Programm1.exe.
Gibt es in PureBasic einen Befehl, der den Platzhalterstring im Speicher findet und ihn durch einen anderen String ersetzt oder kennt jemand einen Code, der dies ermöglicht?
Ich habe im Forum und in Codebibliotheken anderer PureBasic-Seiten schon nachgesehen, aber noch keine passende Lösung gefunden.
Kennt jemand eine einfache Lösung, die dies ermöglicht?[/code]
In PureBasic bin ich noch Anfänger.
Ich bin heute dem PureBoard-Forum beigetreten, weil ich ein Problem habe, in dem ich nicht weiterkomme.

Ich habe in der DataSection eines Musterprogramms Programm1.exe einen Platzhalterstring, den ich bei Bedarf mit Hilfe einer Programm2.exe ersetzen möchte.
Beispiel:
Code: Alles auswählen
;=== Start von Programm1.exe ===
Restore Platzhalter
Read Austauschtext$
MessageRequester("Programm1.exe",Austauschtext$,0)
DataSection
Platzhalter:
Data.s "Dieser Text soll von Programm2.exe ersetzt werden"
PlatzhalterEnde:
EndDataSection
;=== Ende von Programm1.exe ===
;=== Start von Programm2.exe ===
Programm1$ = "Programm1.EXE"
If OpenFile(0,Programm1$)
laenge = Lof()
;Programm1.exe komplett in den Speicher einlesen
*MemoryID = AllocateMemory(laenge)
If *MemoryID
FileSeek(1)
zeichen = ReadData(*MemoryID, laenge)
EndIf
;Austauschtext im Speicher suchen und ersetzen
;?????????????????????????????????????????????
;Wie muss der Code hier aussehen, um im Speicher
;den gesuchten Platzhaltertext von Programm1.exe
;zu finden und zu ersetzen?
;Gibt es in PureBasic einen Befehl oder kennt
;jemand einen PureBasic-Code, die das ermöglicht?
;?????????????????????????????????????????????
;Speicherbereich wieder in Programm1.exe speichern
FileSeek(1)
WriteData(*MemoryID,laenge)
CloseFile(0)
EndIf
;=== Ende von Programm2.exe ===
Nach Aktualisierung schreibe ich den veränderten Speicherbereich zurück in die Programm1.exe.
Gibt es in PureBasic einen Befehl, der den Platzhalterstring im Speicher findet und ihn durch einen anderen String ersetzt oder kennt jemand einen Code, der dies ermöglicht?
Ich habe im Forum und in Codebibliotheken anderer PureBasic-Seiten schon nachgesehen, aber noch keine passende Lösung gefunden.
Kennt jemand eine einfache Lösung, die dies ermöglicht?[/code]