Simpler Dateipacker.
Übersicht

MatthiasBetreff: Simpler Dateipacker. |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hay. Weil ich im Forum ein Thema über Datein packen gelesen, habe ich schnell mal was in dieser richtung Programmiert vieleicht kann es jemand gebrauchen.
Es werden Datein in einer Bank geladen und diese wird dann als Gesammtpack gespeichert. Beim auslesen wird eine Tmp datei gespeichert die mann dann ganz nochmal laden kann. Code: [AUSKLAPPEN] Graphics 800,600,32,2 Global DataPack Timer=CreateTimer(60) ;------Pack erzeugen---------------------- ;AddToDataPack("Datein\","BaseIcon.png") ;AddToDataPack("Datein\","Arial.bmp") ;AddToDataPack("Datein\","StadtIcon.png") ;AddToDataPack("Datein\","EditBrush.png") ;AddToDataPack("Datein\","Map1.png") ;SaveDataPack("MeinPack") ;------Pack benutzen-------------------------- ;LoadDataPack("MeinPack") ;ImageA=LoadImage(FromDPack("StadtIcon.png")) ;ImageB=LoadImage(FromDPack("BaseIcon.png")) ;DeleteFile("Tmp") Repeat If ImageA<>0 Then DrawBlock ImageA,10,10 If ImageB<>0 Then DrawBlock ImageB,100,10 Flip 0:WaitTimer(Timer) Until KeyDown(1) End Function FromDPack$(Name$) Repeat P=P+30 For I=0 To Len(Name)-1 Select PeekByte(DataPack,P+I+8) Case Asc(Mid(Name,I+1,1)) Default Exit End Select Next:Until I=Len(Name) File=WriteFile("Tmp"):Ofset=PeekInt(DataPack,P+4) WriteBytes(DataPack,File,Ofset,PeekInt(DataPack,P)) CloseFile(File) Return "Tmp" End Function Function AddToDataPack(Pfad$,Name$) If DataPack=0 Then DataPack=CreateBank(3000) Repeat P=P+30 Until PeekInt(DataPack,P)=0 FSize=FileSize(Pfad+Name) If FSize=0 Then Return For I=0 To Len(Name)-1 PokeByte(DataPack,P+8+I,Asc(Mid(Name,I+1,1))) Next BSize=BankSize(DataPack):File=ReadFile(Pfad+Name) PokeInt(DataPack,P,FSize):PokeInt(DataPack,P+4,BSize) ResizeBank(DataPack,BSize+FSize) ReadBytes(DataPack,File,BSize,FSize):CloseFile(File) End Function Function SaveDataPack(Name$) File=WriteFile(Name$) BSize=BankSize(DataPack) WriteBytes(DataPack,File,0,BSize):CloseFile(File) End Function Function LoadDataPack(Name$) BSize=FileSize(Name) File=ReadFile(Name) DataPack=CreateBank(BSize) ReadBytes(DataPack,File,0,BSize):CloseFile(File) End Function |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group