Page 1 sur 1

Ajouter des buffers en un seul

Publié : sam. 11/mars/2006 20:05
par Progi1984
Voilà, j'ai ces 3 buffers, comment faire pour les ajouter les uns aux autres ?

Code : Tout sélectionner

  *Bheaderd=AllocateMemory(Len(headerd))
  PokeS(*Bheaderd,headerd)
  
  *Bheaderf=AllocateMemory(Len(headerf)
  PokeS(*Bheaderf,headerf)
  
  *BContentLength=AllocateMemory(Len(Str(MemorySize(*message))))
  PokeS(*BContentLength,Str(MemorySize(*message))
Merci :)

Publié : dim. 12/mars/2006 2:03
par Flype
CopyMemory ?

Publié : dim. 12/mars/2006 8:49
par nico
D'une façon générale, ça donne ça:

Code : Tout sélectionner

*pointeur=AllocateMemory(Len(headerd)+Len(headerf)+Len(Str(MemorySize(*message))))
WriteData(*pointeur,Len(headerd))
*pointeur2=*pointeur+Len(headerd)
WriteData(*pointeur2,Len(headerf))
*pointeur3=*pointeur2+Len(headerd)+Len(headerf)
WriteData(*pointeur3,Len(Str(MemorySize(*message))))

Publié : dim. 12/mars/2006 12:39
par Progi1984
Nico, pourquoi utilises tu Writedata pour écrire dans un buffer ?

Dans la V4, il me demande un numéro ed fichier.

En fait, a partir de 3 buffers, je voudrais les concaténer pour n'en faire qu'un seul !

Publié : dim. 12/mars/2006 15:30
par nico
Oh là mon code est faux pour la 3.94.

Pour la V4, on va faire comme le dit Flype:

Code : Tout sélectionner

*pointeur=AllocateMemory(Len(headerd)+Len(headerf)+Len(Str(MemorySize(*message)))) 

CopyMemory(*Bheaderd,*pointeur,Len(headerd))
*pointeur2=*pointeur+Len(headerd) 
CopyMemory(*Bheaderf,*pointeur2,Len(headerf))
*pointeur3=*pointeur2+Len(headerf) 
CopyMemory(*Bheaderf,*pointeur3,Len(Str(MemorySize(*message))))

Publié : dim. 12/mars/2006 15:47
par Progi1984
En fait, *pointeur2=*pointeur+Len(headerd) permet d'aller à l'adresse aprés *Bheader ?

Publié : dim. 12/mars/2006 15:52
par nico
Oui.

Publié : dim. 12/mars/2006 16:31
par Progi1984
Merci Nico !
Pas mal de codes sources deviennent déjà plus compréhensibles !