G-Rom a écrit :Je ne vois pas l'intérêt, tu as deja des fct du style : Defined()
A toi de les utiliser, non?
Heu je vois pas du tout ce que ça vient faire ici ...
Bon je sais que je suis pas le meilleur pour expliquer les choses mais bon ...
J'aimerais juste une constante qui permet au moment ou je compile le code savoir si le fichier en question est le fichier principal du projet ou si c'est un fichier inclus dans un autre.
Exemple de fichier
Code : Tout sélectionner
; Autor: Thomas (ts-soft) Schulz
; PB-Version: 4.xx
; OS: windows/linux/macos
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Linux
ImportC #PB_Compiler_Home + "purelibraries/linux/libraries/zlib.a"
CompilerCase #PB_OS_MacOS
ImportC "/usr/lib/libz.dylib"
CompilerCase #PB_OS_Windows
ImportC "zlib.lib"
CompilerEndSelect
compress2(*dest, *destLen, *source, sourceLen, level)
uncompress(*dest, *destLen, *source, sourceLen)
EndImport
Procedure zipPackMemory(*source, sourceLen = #PB_Default, level = #PB_Default)
Protected *dest, destLen
If level < #PB_Default Or level > 9 : level = #PB_Default : EndIf
If *source
If sourceLen = #PB_Default : sourceLen = MemorySize(*source) : EndIf
destLen = sourceLen + 13 + (Int(sourceLen / 100))
*dest = AllocateMemory(destLen)
If *dest
If Not compress2(*dest, @destLen, *source, sourceLen, level)
*dest = ReAllocateMemory(*dest, destLen)
ProcedureReturn *dest
EndIf
EndIf
EndIf
EndProcedure
Procedure zipUnpackMemory(*source, *dest)
Protected sourceLen = MemorySize(*source)
Protected destLen = MemorySize(*dest)
If Not uncompress(*dest, @destLen, *source, sourceLen)
ProcedureReturn destLen
EndIf
EndProcedure
;si ce code est exécuter seul alors je compile aussi l'exemple qui va avec
;et je ne compile pas ce code si ce fichier est inclus dans un projet
CompilerIf #PB_Compiler_MainSourceFile=#True
text.s="test de compression dans une phrase tres longue..."
size=StringByteLength(text,#PB_Ascii)+1
Debug "taille de depart:"+Str(size)
*Mem = AllocateMemory(size)
PokeS(*Mem,text)
*src=zipPackMemory(*Mem)
Debug "taille compressé:"+Str(MemorySize(*src))
FreeMemory(*Mem)
*new=AllocateMemory(size)
zipUnpackMemory(*src, *new)
Debug PeekS(*new,#PB_Ascii)
CompilerEndIf