si tu pourrais ajouter dans la prochaine version un switch pour parametrer la taille des chaines ça serait bien.
Par défaut 64 Ko sinon une valeur que l'on fixerait pour chaque projet ou pour tous les projets.

Code : Tout sélectionner
Procedure SetStringManipulationBufferSize(Bytes)
;***************************************************************
;* Modifie la taille du buffer pour la manipulation de chaînes *
;* par défaut = 63999 octets *
;* A appeler impérativement avant toute utilisation de chaînes *
;***************************************************************
PBStringBase.l = 0
PBMemoryBase.l = 0
!MOV eax, dword [PB_StringBase]
!MOV [esp+4],eax
!MOV eax, dword [PB_MemoryBase]
!MOV [esp+8],eax
HeapReAlloc_(PBMemoryBase, #GMEM_ZEROINIT, PBStringBase, Bytes)
!MOV dword [_PB_StringBase],eax
EndProcedure
Code : Tout sélectionner
#StringLength.l = 1048576
XIncludeFile "Utils.pb"
SetStringManipulationBufferSize(#StringLength)