Page 1 sur 1

SetStringManipulationBuffer

Publié : jeu. 02/déc./2004 20:23
par nico
Infos très utile qui nous vient du Forum Anglais.

http://purebasic.new.myforums.net/viewtopic.php?t=13271

La procédure permettant d'utiliser des chaînes de caractères de plus de 64Ko permet maintenant d'utiliser toutes les fonctions de Pure:

Code : Tout sélectionner

; Origine du code de DEU.exe

Procedure SetStringManipulationBufferSize(Bytes) 
  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 

; Set the buffer size for all strings to 1 MB. 
SetStringManipulationBufferSize(1048576) 
A$ = Space(1000000)+"test" 

; NO MORE CRASH 1 - ReplaceString() 
A$ = ReplaceString(A$,"test","pure") 
Debug right(a$,4) 

; NO MORE CRASH 2 - RemoveString() 
A$ = RemoveString(A$,"pu") 
Debug Right(A$,2) 

Debug Len (A$)

Publié : jeu. 02/déc./2004 23:08
par Oliv
COOL :D merci