einfach eine Datei auswählen und es wird automatisch eine .pbi in gleichen Verzeichnis/name erstellt, die die Daten enthalten.
Wenn mehrere Dateien ausgewählt werden, wird nur eine .pbi erstellt, die alle Dateien beinhaltet.
Code: Alles auswählen
; Description: Create an DataSection.pbi from a binary file. Multifileselect supported
; Author: GPI
; Date: 19-12-2015
; PB-Version: 5.40
; OS: Windows, Linux, Mac
; English-Forum:
; French-Forum:
; German-Forum:
; -----------------------------------------------------------------------------
EnableExplicit
Procedure.s Simple_Name(a$)
Protected i
Protected b$="Data_"
Protected char
For i=1 To Len(a$)
char=Asc(Mid(a$,i,1))
Select char
Case 'a' To 'z','A' To 'Z', '0' To '9'
b$+Chr(char)
Default
b$+"_"
EndSelect
Next
ProcedureReturn b$
EndProcedure
Procedure WriteMem(out,file.s,*mem,len)
Protected a$,b$
Protected i
Protected limit=80
file=simple_name(GetFilePart(file))
WriteStringN(out,file+"_len:")
WriteStringN(out,"data.i "+Str(len))
WriteString(out,file+":")
For i=0 To len-1 Step 8
If limit>=80
WriteStringN(out,"")
WriteString(out, "Data.q ")
limit=7
Else
WriteString(out,",")
limit+1
EndIf
a$="$"+Hex(PeekQ(*mem+i))
b$=Str(PeekQ(*mem+i))
If Len(a$)<Len(b$)
WriteString(out,a$)
limit+Len(a$)
Else
WriteString(out,b$)
limit+Len(b$)
EndIf
Next
WriteStringN(out,"")
EndProcedure
Define a$
Define file$
Define len
Define *mem
Define in
Define out
file$=GetCurrentDirectory()
Repeat
file$=OpenFileRequester("Create Data pbi",file$,"*.*|*.*",1,#PB_Requester_MultiSelection)
If file$=""
Break
EndIf
out=CreateFile(#PB_Any,file$+".pbi")
If out
WriteStringN(out,"DataSection")
Repeat
len=FileSize(file$)
If len>0
*mem=AllocateMemory(len+8)
If *mem
in=ReadFile(#PB_Any,file$)
If in
ReadData(in,*mem,len)
CloseFile(in)
Else
Debug "Error Read in"
EndIf
writemem(out,file$,*mem,len)
WriteStringN(out,"")
FreeMemory(*mem)
*mem=0
EndIf
EndIf
a$=NextSelectedFileName()
If a$=""
Break
EndIf
file$=a$
ForEver
WriteStringN(out,"EndDataSection")
CloseFile(out)
EndIf
ForEver
Code: Alles auswählen
DataSection
Data_1_ico_len:
Data.i 1150
Data_1_ico:
Data.q $1010000100010000,$468002000010000,$28000000160000,$20000000100000,$2000010000
Data.q 71303168,0,0,0,0,$20001020000,$1050000010400,$204040000000500,256,0,0,0,$1070001040000
Data.q $290000001700,$3A0000003400,$330000003A00,$307130001032600,1280,0,$813000000000000
Data.q $230000000502,$204830000005700,$60DA30108109900,$95000103A101,$4D0000007C00
Data.q $20309161A00,0,$E1F000000000000,$711350000000805,$67C6D90E37758502,$79DEFC2A7CE1F61F
Data.q $2758F21B5BB5FC28,$71000205CB0A,$40610242800,0,$2247000000000000,$52B73B050F1F040E
Data.q $9DF9FD4081EFE31B,$A8FBFE6FA9FBFE60,$76E9FE5997F7FE6D,$60CC3113D8CFD34,$20F254D1E02
Data.q 0,$3B7C000000000000,$7AE1C31548A20417,$ADFCFE70A1F7FD41,$B0FCFE83B0FCFE81
Data.q $97F2FE7EABFBFE83,$3C89FD2E69D2FE65,33809,0,$3E90000000000000,$86E0FC1E54B64911
Data.q $9BF2FE6A98EDFE54,$9CF4FE6C9CF4FE6B,$95E9FE6B9AF0FE6C,$43A0FE4075D6FE67,$1116418EF011
Data.q 0,$3686000000000000,$72D3FE1A50B18E0B,$7DE1FE457BDCFE3D,$7DE2FE467EE3FE46
Data.q $79D9FE467CDFFE46,$419BFE3167CAFE45,$4A0E3885FD0F,0,$2F77000000000000,$5ABFFE1044A2A208
Data.q $61CDFE255FC8FE22,$62CFFE2662D0FE25,$5EC5FE2661CCFE26,$3A8FFE1B53B7FE25,$5F0F357CFD0B
Data.q 0,$3277000000000000,$69B9FD1C4797890D,$6DC6FE3D6CC1FE3C,$6EC7FE3D6EC8FE3E
Data.q $6BBFFE3E6DC4FE3E,$3380FE3663B2FE3D,$4612367AFC0A,0,$3678000000000000,$82BBFC2447874013
Data.q $86C7FE6385C3FE62,$87C8FE6387C8FE63,$84C1FE6486C6FE64,$2C6DFE5A79B2FE63,$D1D4185EB09
Data.q 0,$498A000000000000,$84B1B41434710226,$9AC9FE8098C5FD6C,$9ACAFE819ACBFE81
Data.q $97C2FE8199C8FE81,$346FFC4C6799FE80,29461,0,0,$3F7514314F880000,$A4C7FD7589B1C522
Data.q $A6CAFE93A6CAFE91,$79A3FE90A2C5FE93,$5B92941E3B72FB64,573,0,0,$6597000000000000
Data.q $4D7F6C264378084B,$5F8DEE4A628FC732,$5184B42F497CE848,$1536C9D4B36,0,0,0,0
Data.q $729F000000000000,$6E9B03506895015B,599,0,0,0,0,0,0,0,0,0,0,$1FF8000000000000
Data.q $3C0000007E00000,$3C0000003C00000,$3C0000007C00000,$3C0000003C00000,$3C0000003C00000
Data.q $7E0000007C00000,$7FFC00000FF00000,$FFFF0000
EndDataSection