PackMemory() + Error Meldungen PB 6 oder Syntax Check (gelöst)
Verfasst: 28.07.2024 11:04
Hallo @all
Ich habe einen sehr alten Code gefunden bei CAV (Codeschnipsel Archiv).
Bevor ich natürlich den ursprünglichen Ersteller belästige und auch CAV
wollte ich mich erkundigen, wie es damit steht.
https://www.purebasic.fr/german/viewtop ... 4&start=20
http://www.purearea.net/pb/CodeArchiv/German.html#15
http://www.purearea.net/pb/CodeArchiv/O ... eateExe.pb
http://www.purearea.net/pb/CodeArchiv/O ... eatePak.pb
Gibt mir immer einen Fehler aus, und zwar:
Zur Ehrenrettung, wie gesagt ist es ein extrem alter Code, den ich dort gefunden habe....
Ursprünglich für PB 3.8 erstellt und wurde dann mal für PB 4 modifiziert.
Seit dieser Zeit hat wohl nie wieder jemand den angeschaut.
Grundsatzfrage besteht schon, wird dies überhaupt noch verwendet "PackMemory()" oder ist das in der Versenkung verschwunden
oder gibt es solch gravierende Differenzen zwischen PB 3 & 4 sowie 6, dass es nicht mehr geht?
Ich fand diese extrem spannend und wollte mal schauen, ob man das evtl. noch wieder gebrauchen könnte.
Bis jetzt scheitere ich leider mit beiden Anwendungsteilen....
Es wird in der zweiten Anwendung: UnPackMemory() verwendet, und dort habe ich einen ähnlichen Effekt.
Herzlichen Dank für die Hilfe bei einer unprofessionellen Frage.
Christian
PS:
Der Source schaut nicht so schön aus aber zum Basteln ganz OK.
Editierte Datei aus PB 4 Source, erstellt pak File:
Ich habe einen sehr alten Code gefunden bei CAV (Codeschnipsel Archiv).
Bevor ich natürlich den ursprünglichen Ersteller belästige und auch CAV
wollte ich mich erkundigen, wie es damit steht.
https://www.purebasic.fr/german/viewtop ... 4&start=20
http://www.purearea.net/pb/CodeArchiv/German.html#15
http://www.purearea.net/pb/CodeArchiv/O ... eateExe.pb
http://www.purearea.net/pb/CodeArchiv/O ... eatePak.pb
Code: Alles auswählen
CompressedLength = PackMemory(Mem1, Mem2, FileLength,9)
Code: Alles auswählen
[10:08:34] [COMPILER] Zeile 47: PackMemory() ist keine Funktion, Array, Makro oder LinkedList.
Ursprünglich für PB 3.8 erstellt und wurde dann mal für PB 4 modifiziert.
Seit dieser Zeit hat wohl nie wieder jemand den angeschaut.
Grundsatzfrage besteht schon, wird dies überhaupt noch verwendet "PackMemory()" oder ist das in der Versenkung verschwunden
oder gibt es solch gravierende Differenzen zwischen PB 3 & 4 sowie 6, dass es nicht mehr geht?
Ich fand diese extrem spannend und wollte mal schauen, ob man das evtl. noch wieder gebrauchen könnte.
Bis jetzt scheitere ich leider mit beiden Anwendungsteilen....
Es wird in der zweiten Anwendung: UnPackMemory() verwendet, und dort habe ich einen ähnlichen Effekt.
Herzlichen Dank für die Hilfe bei einer unprofessionellen Frage.
Christian
PS:
Der Source schaut nicht so schön aus aber zum Basteln ganz OK.
Editierte Datei aus PB 4 Source, erstellt pak File:
Code: Alles auswählen
Declare _M(Text$)
; Author: AndyMars (some modifications by ChrigiGee)
; Date: 28. Juli 2024
; OS: Windows
; Demo: unknow
; Part 1/2 of the ReadmePacker - creates a packed readme file,
; later to be included in the ReadmePacker_CreateExe example
;
; ------------------------------------------------------------
;
; PureBasic - Compressor example file
;
; (c) Fantaisie Software
;
; ------------------------------------------------------------
;erstellt mit für PureBasic 6
Procedure _M(Text$)
MessageRequester("Readme Packer 3",Text$)
EndProcedure
OpenPreferences("ReadmePacker.ini")
SourceFile.s=ReadPreferenceString("SourceFile","")
TargetFile.s=ReadPreferenceString("TargetFile","")
ClosePreferences()
UseBriefLZPacker() ; Small and fast packer
If ReadFile(0, SourceFile)
FileLength = Lof(0)
; Allocate the 2 memory buffers needed for compression..
;
*Source = AllocateMemory(FileLength)
*Target = AllocateMemory(FileLength)
If FileLength And *Source And *Target
ReadData(0, *Source, FileLength) ; Read the whole file in the memory buffer
CloseFile(0)
; Compress the file, which is in memory
;
CompressedLength = CompressMemory(*Source, FileLength, *Target, FileLength)
If CompressedLength
DecompressedLength = UncompressMemory(*Target, CompressedLength, *Source, FileLength)
If DecompressedLength = FileLength
If CreateFile(0,TargetFile)
WriteData(0, *Target, CompressedLength)
; MessageRequester("Info", "De/Compression succeded:"+#LF$+#LF$+"Old size: "+Str(FileLength)+#LF$+"New size: "+Str(CompressedLength))
CloseFile(0)
Else
; MessageRequester("Error", "Can't compress the file")
_M("Error - cannot create file: "+TargetFile)
EndIf
Else
_M("Error - compressing failed!")
EndIf
FreeMemory(*Source)
FreeMemory(*Target)
EndIf
Else
_M("Error - cannot open file: "+SourceFile)
; CloseFile(0)
EndIf
EndIf
End