| |
|
|
Georg Teles | Ein simples Programm, dass 2 Dateien zusammenfügt:
Herunterladen
1. Datei: Quelldatei 2. Datei: welche angehängt wird 3. Save: Zieldatei 4. Link!: Zieldatei wird geschrieben
Stand 2013 |
|
|
| |
|
|
|
H.Brill | Hallo, zu was braucht man denn sowas ? Ist das für Bilder o.ä. gedacht ? Was macht Nr. 4 ? Link!:Zieldatei wird geschrieben. Dachte, das wäre bei Nr. 3 ersichtlich.
Ist das was ähnliches, wie in der Hilfe bei ProgEnd ? Copy test.exe /b + test.txt /b test1.exe
Oder irre ich mich und es ist doch was anderes ?
Ab Version X4 muß man aufpassen. Da funktioniert das %ProgEnd nicht mehr. Hatte ich damals schon RGH gemeldet. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 02.01.2023 ▲ |
|
|
|
|
Georg Teles | Hallo,
H.Brill (02.01.2023)
Ist das was ähnliches, wie in der Hilfe bei ProgEnd ? Copy test.exe /b + test.txt /b test1.exe
im Grunde ja, ist auch im Grunde mit BlockRead und BlockWrite gelesen und geschrieben.
H.Brill (02.01.2023)
Ab Version X4 muß man aufpassen. Da funktioniert das %ProgEnd nicht mehr. Hatte ich damals schon RGH gemeldet.
Da hast du recht, weil X4 das Kompilat als Ressource anhängt. ProgEnd würde ich nur dafür benutzen, damit das Runtime weiß, bis wohin das Kompilat (PRC) geht und gelesen werden soll.
Streng genommen kann man das Kompilat am Ende der Runtime anhängen, also nicht als Ressource. Das ist im Grunde, was ProfLink bis x2? glaube ja tut. Das Runtime würde dann das Kompilat anhand des Headers suchen " RGH-PROFAN" und korrekt ausführen. Testweise geht es auch unter X4, da hat Roland ja auch den Suchindex ab X3 auf 100 Kb gesetzt, hatte aber einen anderen Zusammenhang (stark komprimierte Kompilate). Gerade getestet, kann man X4 Kompilat am Ende der Runtime anhängen, das %ProgEnd wird auch korrekt angezeigt, Testgrafik & Dateien folgen.
Das Programm hatt ich speziell für X2 geschrieben, da ich am Ende des Programms nach %ProgEnd meine Dateien, genauer gesagt Archive angehängt und mitgeliefert. Ab X4 würde ich statt %ProgEnd einen selbstgewählten String aussuchen und den Beginn der Daten markieren.
Grüße, sry für viel Text |
|
|
| |
|
|
|
Georg Teles | Habs getestet, hier die Ergebnisse
tst____1.prf - mittels ProgEnd
cls
declare f#
dim f#,21362
print "Progend ";%progend
Set("FileMode",0)
Assign #1,Par$(0)
OpenRW #1
seek #1,%progend
blockread(#1,f#,0,21362)
Close #1
Set("FileMode",1)
Assign #2,"test.gif"
OpenRW #2
blockwrite #2,f#,0,21362
Close #2
print "test.gif geschrieben..."
waitinput
dispose f#
ProgEnd
tst____2.prf - mittels MemPos und "Such"-Prefix (xp.txt Inhalt = "XPROFANGIF_____")
cls
declare f#, f&
f& = filesize(Par$(0))
dim f#,f&
Set("FileMode",0)
Assign #1,Par$(0)
OpenRW #1
blockread(#1,f#,0,f&)
Close #1
declare pos&
pos& = MemPos(f#,0,"XPROFANGIF_____")
dispose f#
print "POS& "+Str$(pos&)
dim f#,21362
Assign #1,Par$(0)
OpenRW #1
seek #1,pos&+15
blockread(#1,f#,0,21362)
Close #1
Set("FileMode",1)
Assign #2,"test.gif"
OpenRW #2
blockwrite #2,f#,0,21362
Close #2
print "test.gif geschrieben..."
waitinput
dispose f#
ProgEnd
Ergebnis
Zusammenfassung Wenn PRC von X4 mittels Linker als Ressource angefügt wird, gibt %ProgEnd nicht das Ende des fertigen Programms an, sondern das Ende der PRC, also innerhalb der Runtime und nicht wo diese endet (tst____1.prf - oberster Baum s. Bild)
Wenn PRC am Ende von Prfrun32 angefügt wird, funktioniert %ProgEnd wunderbar. (tst____1.prf - Zeile 2 im Baum s. Bild)
Wenn man stattdessen einen selbstgewählten Präfix nutzt und mittels MemPos diesen sucht, geht nichts schief: (tst____2.prf)
Ob mittels Linker von X4 oder am Ende von Runtime angefügte PRC, gefolgt von am Ende angefügter Präfix (hier xp.txt Datei mit Inhalt "XPROFANGIF_____", welcher gesucht wird s. Beispiel tst____2.prf) gefolgt von am Ende angefügter GIF letztendlich klappts wunderbar.
Die Idee war nunmehr Daten an das XProfan Programm anzufügen. Das kann man ausweiten und zB was mir gerade einfällt als selbstentpackendes Archiv zB nutzen und an die Fertige EXE ein Archiv anhängen, welches das Programm je nach Archiv die Dateien auflistet und eventuell variable Daten wie Titel, Text für den Archivierer enthält (da arbeite ich an meinem TEW Archivierer grad dran).
Sry für das Ganze, wollte auf Nummer sicher gehen und testen ... Servus. |
|
|
| |
|
|
|
H.Brill | Danke für die Erläuterungen. Seit es die Ressourcen-Funktionen in XProfan gibt, kann man auch damit einiges bewirken. Ich hatte da mal auch ein Programm für die Arbeitskollegen für zuhause entwickelt. Die Listview.dll, die ich beigelegt hatte, hatten die Kollegen öfter mal gelöscht, warum auch immer, und bemängelnden dann, daß mein Programm nicht mehr lief. Da hatte ich die DLL kurzerhand als Ressource eingelinkt und bei jedem Programmstart die Resource ausgelesen und neu in den Programmordner geschrieben. Da war dann Ruhe. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 03.01.2023 ▲ |
|
|
|