Page 1 sur 1

...............

Publié : mar. 02/juin/2009 19:25
par Backup
...............................

Publié : mar. 02/juin/2009 19:26
par Backup
...............................

Publié : mar. 02/juin/2009 19:27
par Backup
.................

Publié : mar. 02/juin/2009 19:29
par Backup
.......................

Publié : mar. 02/juin/2009 22:56
par djes
Ce serait bien si tes datas étaient un peu compressés... D'abord, au lieu d'utiliser le système décimal, et toutes ces virgules, tu pourrais remplacer par de l'hexa, ou des chaînes de caractères (en excluant les caractères spéciaux). Ensuite, tu pourrais inclure une vraie compression, genre LZHW.

Publié : ven. 05/juin/2009 14:24
par Le Soldat Inconnu
C'est Fred qui va pas être content si on charge le fofo avec des exe :lol:

Publié : ven. 05/juin/2009 16:31
par Backup
oui c'est vrais :)

mais c'est plus pour la demo
de plus si l'on compresse d'une façon ou l'autre les datas
il y aurai peut etre moyen de faire un 'punch' ;)

Publié : dim. 07/juin/2009 15:17
par zaphod
Salut à tous,

Pour poster un exe compressé sous forme datas :

Code : Tout sélectionner

; EXE2compressedDATA 
; zaphod - 2009
name_file$=OpenFileRequester("ouvrir","","*.exe",0) 
If name_file$<>""
If ReadFile(0, name_file$) 
      length = Lof(0)
      *MemoryID = AllocateMemory(length) 
        If *MemoryID
        bytes = ReadData(0, *MemoryID, length)  
      EndIf
      CloseFile(0)
    EndIf
*pack=AllocateMemory(length+8)
sz=PackMemory(*memoryid,*pack,length,9)
FreeMemory(*memoryid)
;
OpenFile(1,name_file$+".pb")  
titre$=name_file$ 

WriteStringN(1,"DataSection") 
WriteStringN(1,"datas:") 
i=0 ;nombre de datas / ligne
WriteString(1,"data.l ") 
For j=0 To sz-1 Step 4
        WriteString(1,"$"+Hex(PeekL(*pack+j),#PB_Long))
        i+1
        If j<sz-4
        If i<10 ;10 datas / ligne
            WriteString(1,",") 
        Else
         WriteString(1,Chr(13))
         WriteString(1,"data.l ") 
         i=0
        EndIf
        EndIf 
Next
;
FreeMemory(*pack)
WriteString(1,Chr(13))
WriteStringN(1,"EndDataSection") 
WriteStringN(1,"titre$="+Chr(34)+titre$+Chr(34)) 
WriteStringN(1,"*pak=allocatememory("+Str(sz)+")")
WriteStringN(1,"for i=0 to "+Str(sz-1)+" step 4") 
WriteStringN(1,"Read.l d") 
WriteStringN(1,"PokeI(*pak+i,d)")
WriteStringN(1,"next") 
WriteStringN(1,"*unpak=allocatememory("+Str(length)+")")
WriteStringN(1,"unpackmemory(*pak,*unpak)")
WriteStringN(1,"CreateFile(1,titre$)")
WriteStringN(1,"WriteData(1,*unpak,"+Str(length)+")")
WriteStringN(1,"CloseFile(1)")
WriteStringN(1,"freememory(*pak)")
WriteStringN(1,"freememory(*unpak)")   
CloseFile(1) 
EndIf
L'exe reconstitué est identique à l'original (vérifié avec md5).
Bonne utilisation,
Z@ph0d//

Publié : dim. 07/juin/2009 15:36
par Backup
pas mal du tout !

juste histoire de raler , t'a pas inclu le lancement du prg dans le listing !!

parceque quelqu'un qui copie le listing dans son editeur
lorsqu'il le lance, plutot que de simplement generer le prg , il faudrai que celui ci se lance dans la foulé !!

ça evite d'avoir a chercher ou peut bien etre ce prg ! :)

sinon ça marche niquel , Bravo a toi :D la classe

Publié : lun. 15/juin/2009 0:27
par Fortix
Intéressant 8) , moi qui adore les Datas j'aurais dûs y penser :lol: , fais fier :x



du grand art