Page 1 sur 1
Taille chaines
Publié : lun. 27/déc./2004 11:30
par Anonyme2
Fred,
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.

Publié : dim. 09/janv./2005 16:26
par LeCyb
Voici un petit code que j'ai trouvé sur le forum Anglais:
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
Tu peux le mettre dans un fichier (ici Utils.pb) et l'inclure dans le projet avant toute utilisation de chaînes:
Code : Tout sélectionner
#StringLength.l = 1048576
XIncludeFile "Utils.pb"
SetStringManipulationBufferSize(#StringLength)
En utilisant une constante cela te permettra de gérer les dépassements.
Mais si je ne m'abuse cela ne concerne que la manipulation de chaînes (Len, Trim etc...) car les chaînes ont une longueur illimitée.
Publié : dim. 09/janv./2005 16:37
par Anonyme2
Merci, j'utilise déjà ce code. C'est mieux si fred l'integre et que l'on ait simplement une option.
Publié : dim. 09/janv./2005 17:00
par LeCyb
Ah ok j'avais mal capté, ça serait chouette que ça soit intégré en effet

Publié : dim. 09/janv./2005 22:06
par filperj
Ce serai encore mieux d'abandonner le système du buffer commun, non ?
Plus de taille limite (enfin, si, la mémoire du PC), et plus de problème avec les threads...