Prototype
E_RTN EMemory::ByteCopyExact( uchar ucByteToCopy );

Cette fonction ajuste l'espace de travail à 1 octet et y copie l'octet ucByteToCopy.

Si nécessaire l'espace de travail de l'objet est redimensionné à la hausse ou à la baisse.

 

Argument

uchar ucByteToCopy

octet à copier.

 

Retour

E_RTN

voir la section retour de la librairie Eclat.

 

Exemple

Description :

Effectue la copie exacte d'un octet ayant pour valeur 0x41 ('A' en ASCII) dans un objet EMemory d'une taille de 5 octets ayant les informations 0x56, 0x57, 0x58, 0x59 et 0x5A ("VWXYZ" en ASCII).

Code :

EMemory eMem( "VWXYZ", 5 ); // objet EMemory alloué de 5 octets

eMem.TraceEx( _T("eMem") );
eMem.ByteCopyExact( 'A' );
eMem.TraceEx( _T("eMem") );

Sortie :

### Object EMemory 'eMem' Trace #
# Object address='0x0012F440', status='EMemory::ObjectStatus_Enable' (code '3').
# Buffer address='0x00000004', workspace size='5' byte(s).
# Array data from offset '0x00000000' to offset '0x00000004', length=5 byte(s).
# Offset start 0x00000000 56 57 58 59 5A .. .. .. .. .. .. .. .. .. .. .. VWXYZ
### End #

### Object EMemory 'eMem' Trace #
# Object address='0x0012F440', status='EMemory::ObjectStatus_Enable' (code '3').
# Buffer address='0x00000004', workspace size='1' byte(s).
# Array data from offset '0x00000000' to offset '0x00000000', length=1 byte(s).
# Offset start 0x00000000 41 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. A
### End #

Vue :

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E ..
  00 01 02 03 04
  56
V
57
W
58
X
59
Y
5A
Z

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E ..
  00
  41
A

 

Voir aussi
E_RTN EMemory::ByteCopy( uchar ucByteToCopy, ulonglong ullOffset = 0 );
E_RTN EMemory::BlockCopy( void *pBlockToCopy, ulonglong ullBlockToCopySize, ulonglong ullOffset = 0 );
E_RTN EMemory::BlockCopyExact( void *pBlockToCopy, ulonglong ullBlockToCopySize );
E_RTN EMemory::BlockCopyTo( void *pBlockDest, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );

 

Minimum
Version 1.0.0