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 !