Italia
Unità

briefLZ Packer-PCU per 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& = Dimensione des Speicherbereichs (z.B. SizeOf(Bereich#) oder Len(Text$)
InitialLength& = Dieser Parameter ist Optional (Default 0), per weitere Infos bitte die Original-Aiuto studieren

Ergebnis: CRC-Checksumme als Long

BLZ_UnPackMemory(SourceMem&, DestMem&, DePackedSize&)
SourceMem& = siehe oben
DestMem& = Zielspeicher, dieser ist vorher zu Reservieren (Bereichsvariable dimensionieren)
DePackedSize& = Dimensione der ungepackten File

Ergebnis: Im Erfolgsfalle grösser 0

BLZ_PackMemory(SourceMem&, DestMem&, SourceLength&)
SourceMem& = siehe oben
DestMem& = siehe oben (dieselbe Dimensione 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$ = File, ggfls. mit Pfad, die gepackt werden soll
DestFile$ = Name und ggfls. Pfad der zu erstellenden File

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()

/a>

Saluto
Thomas

990 kB
Kurzbeschreibung: Version 2.0
Hochgeladen:06.01.2007
Downloadcounter358
Download
 
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. per Giochi, 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 naturalmente auch unabhängig von der PCU per 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


Saluto
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 naturalmente 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).

Saluto
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 per Dein Lob
Aufnahme in anderen Projekten steht nichts im Wege, solange die beiliegenden Lizensen der anderen Autori (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.

Saluto
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 Autori 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.

Saluto
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 File
Fügt eine File zu einem mit CreatePack geöffneten Pack hinzu

BLZ_AddPackMem(MemPointer&, Size&)
MemPointer& = Speicheradresse (z.B. eine Bereichsvariable)
Size& = Dimensione 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-File usw. in ein Pack gepackt werde. Hab die angepaßte ogldemo als Beispiel hinzugefügt.

Saluto
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 per Anzahl der File 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  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

11.407 Views

Untitledvor 0 min.
p.specht21.06.2021
PETER195627.04.2021
Christof NeuĂź30.10.2016
E.T.17.02.2016
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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