Page 1 sur 2

modifier la taille des strings

Publié : sam. 25/juin/2011 20:23
par nico
Ce code ne fonctionne plus chez moi, j'en ai besoin!

Code : Tout sélectionner

Procedure SetStringManipulationBufferSize(size); - Set the String-Buffer-Size
  
  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, size) 
  
  !MOV dword [PB_StringBase],eax 
  
EndProcedure

Re: modifier la taille des strings

Publié : sam. 25/juin/2011 20:34
par SPH
On va te la faire ta procedure. Mais explique ce que tu veux

Re: modifier la taille des strings

Publié : sam. 25/juin/2011 21:15
par Chris
Si tes strings sont trop grands, tu peux toujours ... faire un nœud à la ficelle. :mrgreen:

Re: modifier la taille des strings

Publié : sam. 25/juin/2011 22:02
par nico
Ceux qui connaissent cette procédure, save de quoi je parle, les autres ne pourront pas m'aider!

En clair, ça permet de dépasser la limite des 64000 octets d'une chaine.

Re: modifier la taille des strings

Publié : dim. 26/juin/2011 5:48
par Thyphoon
Je crois que c'est Fred qui a l'origine de cette routine !
Je sais que Dobro l'utilisait dans sont prog BMP2DATA peut être a t'il la parade
sinon tu auras plus facilement une reponse en postant a l'origine sur le forum anglais
ici=>
http://www.purebasic.fr/english/viewtop ... BufferSize

Désolé je peux pas faire mieux !

Re: modifier la taille des strings

Publié : dim. 26/juin/2011 10:08
par PAPIPP
Bonjour à tous
Voila ce que j'ai trouvé pour PB451 ou PB460

Nom..........Extension.............Encombrement.en.mémoire............Plage.
Byte..............b..............................1.octet........................-128.à.+127.
Ascii..............a..............................1.octet.........................0.à.+255.
Caractere.......c..............................1.octet.(ascii)................0.à.+255.
Caractere.......c..............................2.octets.(unicode)..........0.à.+65535.
Unicode..........u..............................2.octets.......................0.à.+65535.
Word..............w.............................2.octets......................-32768.à.+32767..
Long..............l...............................4.octets......................-2147483648.à.+2147483647.
Integer...........i...............................4.octets.(32.bits)..........-2147483648.à.+2147483647.
Integer...........i...............................8.octets.(64.bits)..........-9223372036854775808.à.+9223372036854775807.
Float..............f..............................4.octets........................illimité.(voir.informations.plus.bas)..
Quad..............q..............................8.octets......................-9223372036854775808.à.+9223372036854775807.
Double............d..............................8.octets.illimité..............(voir.informations.plus.bas).
String.............s........................longueur.de.la.chaine.+.1..........illimité
String Fixe..... .s{Longueur} ............longueur de la chaine ..............illimité

Exemple :

Code : Tout sélectionner

a$="s"+Space(1048574)+"e"
Debug "DEBUT="+Left(a$,8)+" FIN="+Right(A$,8)+" Long=" +Str(Len(a$))
A+

Re: modifier la taille des strings

Publié : dim. 26/juin/2011 12:22
par Backup
j'allais le dire !

depuis la Version 4.30 les Strings sont illimitées .... :)

Re: modifier la taille des strings

Publié : dim. 26/juin/2011 12:31
par Thyphoon
Dobro a écrit :j'allais le dire !

depuis la Version 4.30 les Strings sont illimitées .... :)
:oops: j'y ai pensé ... mais je me suis dit que ça devait pas être ça :mrgreen:

Re: modifier la taille des strings

Publié : mar. 28/juin/2011 10:09
par Fred
Je confirme, ce code est obsolete.

Re: modifier la taille des strings

Publié : mar. 28/juin/2011 11:52
par Thyphoon
Fred a écrit :Je confirme, ce code est obsolete.
merci pour cette confirmation !

Re: modifier la taille des strings

Publié : mer. 29/juin/2011 14:16
par dayvid
Hé minute svp :o

Les string ne sont pas illimité, non non non :roll:
j'ai eu un soucis dernièrement sur ça dalleur ou je ne pouvais pas mettre plus de (me souvient plus)
de X caractère dans une chaine littérale :wink:

Re: modifier la taille des strings

Publié : mer. 29/juin/2011 14:23
par Thyphoon
histoire de tester ! avec 100 000 caractères pas de souci

Code : Tout sélectionner

text.s

For z=1 To 100000
  text+Chr(97+Random(26))
Next

Debug Len(text)

Re: modifier la taille des strings

Publié : jeu. 30/juin/2011 9:16
par SPH
Si je me souviens bien, ils etaient limité a 32767 ou 65535 caracteres

Re: modifier la taille des strings

Publié : jeu. 30/juin/2011 16:00
par falsam
Pour ceux qui ont des doutes, un petit code qui affiche la longueur d'un string >100 000 caractères ainsi que la portion de string se trouvant à la position 100 001 sur une longueur de 8

Code : Tout sélectionner

Buffer$=Space(100000)+"Illimité"
Debug "Longueur de buffer "+Str(Len(Buffer$))
Debug Mid(Buffer$,100001,8)

Re: modifier la taille des strings

Publié : jeu. 30/juin/2011 16:44
par nico
c'est bizarre, faudra que je reteste et à l'occasion posté un code si j'ai un problème, merci pour vos réponses en tout cas!