Deutsch
Units

briefLZ Packer-PCU für XProfan ab 10

 
Diese PCU verwendet die briefLZ.lib von Joergen Ibsen (https://www.ibsensoftware.com)

Alle Funktionen unterstützen einen Namensraum, dessen Verwendung auch ausdrücklich empfohlen wird
Der Übersichtlichkeit wegen wurde in der Beschreibung das ?_ weggelassen
Parameter stehen in Klammern hinter dem Funktionsnamen

Funktionsbeschreibung:

[quote:ce4322d5e2]BLZ_Init()
Muß vor der ersten Benutzung aufgerufen werden. Das Ergebnis ist positiv im Erfolgsfalle

BLZ_Free()
Muß am ende der Benutzung aufgerufen werden

BLZ_CRC(SourceMem&, SourceLength&[, InitialLength&])
SourceMem& = Adresse des Speicherbereichs (z.B. Bereich# oder Addr(Text$)
SourceLength& = Größe des Speicherbereichs (z.B. SizeOf(Bereich#) oder Len(Text$)
InitialLength& = Dieser Parameter ist Optional (Default 0), für weitere Infos bitte die Original-Hilfe studieren

Ergebnis: CRC-Checksumme als Long

BLZ_UnPackMemory(SourceMem&, DestMem&, DePackedSize&)
SourceMem& = siehe oben
DestMem& = Zielspeicher, dieser ist vorher zu Reservieren (Bereichsvariable dimensionieren)
DePackedSize& = Größe der ungepackten Datei

Ergebnis: Im Erfolgsfalle grösser 0

BLZ_PackMemory(SourceMem&, DestMem&, SourceLength&)
SourceMem& = siehe oben
DestMem& = siehe oben (dieselbe Größe wie SourceLen, nach dem Packen mit dem Ergebnis dieser Funktion neu Dimmen!)
SourceLength& = siehe oben[/quote:ce4322d5e2]
E x t r a F u n k t i o n e n :

Damit auch Einsteiger diese PCU nutzen können, hab ich die 2 folgenden Funktionen (in XProfan 10) hinzugefügt.
Vielleicht mal die Sourcen ansehen, um die obigen Funktionen besser zu verstehen.
Diese Funktionen benutzen einen eigenen Dateiheader und führen beim entpacken automatisch einen CRC-Check durch

[quote:ce4322d5e2]BLZ_UnpackFile(SourceFile$, DestFile$)
SourceFile$ = Datei, ggfls. mit Pfad, die gepackt werden soll
DestFile$ = Name und ggfls. Pfad der zu erstellenden Datei

Ergebnis: 1 im Erfolgsfalle

BLZ_PackFile(SourceFile$, DestFile$)
siehe BLZ_UnpackFile()
[/quote:ce4322d5e2]
Beispiel:
KompilierenMarkierenSeparieren
 $U briefLZ.pcu

If BLZ_Init()

    BLZ_PackFile($WinPath + "\Angler.bmp", $TempDir + "\Angler.pak")
    BLZ_UnpackFile($TempDir + "\Angler.pak", $TempDir + "\Angler.bmp")
    Shell "Explorer.exe /e,/n," + $TempDir
    BLZ_Free()

EndIf


Gruß
Thomas

990 kB
Kurzbeschreibung: Version 2.0
Hochgeladen:06.01.2007
Ladeanzahl358
Herunterladen
 
27.12.2006  
 




Michael
Dell
Ist Dir gelungen, echt Klasse!!!
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
27.12.2006  
 



Danke Michael
Paar Beispiele fehlen noch, entpacken von Bildern in den RAM usw. für Spiele, aber da sollen die anderen Community-Mitglieder selber ihren Grips anstrengen, die grundsätzliche Möglichkeit ist gegeben
 
27.12.2006  
 



Hab jetzt noch ein Beispiel beigefügt, welches ein gepacktes Bild im Speicher entpackt und darstellt.

Die ersten beiden Proceduren lassen sich natürlich auch unabhängig von der PCU für Bitmaps verwenden, deshalb poste ich sie hier nochmal
KompilierenMarkierenSeparieren
Autor: Thomas (ts-soft) Schulz

Proc CatchBmp

    Parameters MemPointer&
    Declare hDC&, BITMAPFILEHEADER#, BMPInfo&, init&, hImage&
    hDC& = External("user32.dll", "GetDC", External("user32.dll", "GetDesktopWindow"))
    Dim BITMAPFILEHEADER#, 14
    BITMAPFILEHEADER# = MemPointer&
    BMPInfo& = MemPointer& + 14
    init& = MemPointer& + Long(BITMAPFILEHEADER#, 10)
    hImage& = External("gdi32.dll", "CreateDIBitmap", hDC&, BMPInfo&, 4, init&, BMPInfo&, 0)
    External("user32.dll", "ReleaseDC", External("user32.dll", "GetDesktopWindow"), hDC&)
    Dispose BITMAPFILEHEADER#
    Return hImage&

EndProc

Proc FreeCatchBmp

    Parameters hImage&
    DeleteObject hImage&

EndProc


Gruß
Thomas
 
27.12.2006  
 




Dietmar
Horn
Hallo Thomas,

das ist ja mal wieder eine reife Leistung, Deine PCU! Damit eröffnen sich wieder bisher ungeahnte Möglichkeiten!

Habe Deine PCU (und natürlich auch Deine uFMOD.PCU und die MemoryModule.inc von Sebastian) umgehend in den XProfan-Manager aufgenommen, damit sich das alles auch dadurch weiter verbreiten kann und nicht so leicht verlorengeht (jedenfalls in unserem Territorium nicht).

Gruß
Dietmar
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
27.12.2006  
 



Hallo Dietmar, danke für Dein Lob
Aufnahme in anderen Projekten steht nichts im Wege, solange die beiliegenden Lizensen der anderen Autoren (speziell der C-Libs) beachtet werden. Ich suche aber alles so aus, das es entweder unter LGPL, ZLIB oder Modzilla Lizens fällt, so das eine kommerzielle Nutzung sichergestellt ist.

Gruß
Thomas[size=6:ad0d3b2a08], der gerade einen Compiler in reinem XProfan schreibt, dazu mehr demnächst in einem neuen Thread[/size:ad0d3b2a08]
 
27.12.2006  
 




Dietmar
Horn
Hallo Thomas,

wenn wir was von anderen Autoren in unseren Manager aufnehmen, dann wird grundsätzlich alles aufgenommen, was der jeweilige Autor an zusätzlichen Infos, ZIPs etc. mitgeliefert hat. Denn mit fremden Federn möchten wir uns keinesfalls schmücken ...

Änderungen an Codes nehme ich lediglich dann vor, wenn offensichtliche Fehlerchen drin sind (was meist die Lauffähigkeit unter kleineren PRF-Versionen betrifft), oder wenn mir das bei einigen Sachen im Zusammenhang mit der Lauffähigkeit im Manager günstig bzw. erforderlich erscheint.

Gruß
Dietmar
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
28.12.2006  
 



Update auf Version 2.0

Containerfunktionen hinzugefügt

BLZ_CreatePack(PackFile$)
PackFile$ = Name des Packs, ggfl. mit Pfad
Erstellt ein neues PackFile

BLZ_OpenPack(PackFile$)
PackFile$ = Name des Packs, ggfl. mit Pfad
Öffnet ein Packfile zum weiteren extrahieren

BLZ_ClosePack()
Schließt das aktuelle PackFile

BLZ_AddPackFile(File$)
File$ = Name der hinzuzufügenden Datei
Fügt eine Datei zu einem mit CreatePack geöffneten Pack hinzu

BLZ_AddPackMem(MemPointer&, Size&)
MemPointer& = Speicheradresse (z.B. eine Bereichsvariable)
Size& = Größe dieser Bereichsvariablen
Fügt den in diesem Speicher befindlichen Daten zum Pack hinzu

BLZ_NextPackFile()
Entpackt das nächste Packfile und gibt die Speicheradresse zurück
Um die größe zu erfahren ist BLZ_PackFileSize() sofort nach dieser Funktion aufzurufen

BLZ_PackFileSize()
Gibt die größe des zuletzt mit BLZ_NextPackFile() entpackten Packs

Jetzt können alle Bilder, Sounds, XGL-Dateien usw. in ein Pack gepackt werde. Hab die angepaßte ogldemo als Beispiel hinzugefügt.

Gruß
Thomas
 
06.01.2007  
 




Jac
de
Lad
Thomas hat seinen Account ja löschen lassen und auch seine Website ist auch nicht mehr vorhanden. Ich möchte das Ganze gern zu einem universell einsetzbaren Format ausweiten. Dazu werde ich noch Funktionen für Anzahl der Dateien im Archiv und Dateinamen und so hinzufügen. Wenn ich fertig bin, lad ichs hoch.

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
19.05.2008  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

11.420 Betrachtungen

Unbenanntvor 0 min.
p.specht21.06.2021
PETER195627.04.2021
Christof Neuß30.10.2016
E.T.17.02.2016
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie