Prototype
E_RTN EMemory::BytesCountGet( ulonglong *pullByteCounted,
void *pBytesToCount,
ulonglong ullBytesToCountSize,
ulonglong ullOffset = 0,
ulonglong ullOffsetSize = EMemory::SizeUpToEnd );

Cette fonction décompte le nombre d'octets de l'intervalle de travail ayant l'une des valeurs de la série d'octets pBytesToCount.

 

Argument

ulonglong *pullByteCounted

adresse d'une variable de type ulonglong où y sera stocké le nombre d'octets trouvé.

Si cette information ne vous intéresse pas cet argument peut être NULL (la fonction ne retournera pas d'erreur à ce propos).

void *pBytesToCount

adresse de la série d'octets à décompter.

ulonglong ullBytesToCountSize

taille de la série d'octets à décompter.

ulonglong ullOffset = 0

offset de départ de l'intervalle de travail de décompte.

ulonglong ullOffsetSize = EMemory::SizeUpToEnd

étendue de l'intervalle de travail de décompte.

 

Retour

E_RTN

voir la section retour de la librairie Eclat.

 

Exemple

Description :

Décompte du nombre d'octets ayant la valeur 0x43 ou 0x41 ("CA" en ASCII) dans l'ensemble de l'espace de travail puis dans un intervalle de travail de l'offset 1 sur une taille de 7 octets d'un objet EMemory alloué de 9 octets d'espace de travail contenant les données 0x41, 0x42, 0x41, 0x43, 0x41, 0x44, 0x41, 0x45 et 0x41 ("ABACADAEA" en ASCII).

Code :

EMemory eMem( "ABACADAEA", 9 ); // objet EMemory alloué de 9 octets
ulonglong ullByteCount = 0;

eMem.TraceEx( _T("eMem") );

eMem.BytesCountGet( &ullByteCount, "CA", 2 );
ETrace::DoEx( _T("Nombre d'octets ayant la valeur 0x43 ou 0x41 = %I64u.\n"), ullByteCount );

eMem.BytesCountGet( &ullByteCount, "CA", 2, 1, 7 );
ETrace::DoEx( _T("Nombre d'octets ayant la valeur 0x43 ou 0x41 = %I64u.\n"), ullByteCount );

Sortie :

### Object EMemory 'eMem' Trace #
# Object address='0x0012F468', status='EMemory::ObjectStatus_Enable' (code '3').
# Buffer address='0x00000004', workspace size='9' byte(s).
# Array data from offset '0x00000000' to offset '0x00000008', length=9 byte(s).
# Offset start 0x00000000 41 42 41 43 41 44 41 45 41 .. .. .. .. .. .. .. [ABACADAEA]
### End #

Nombre d'octets ayant la valeur 0x43 ou 0x41 = 6.
Nombre d'octets ayant la valeur 0x43 ou 0x41 = 4.

Vue :

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

 

Voir aussi
E_RTN EMemory::ByteCountGet( ulonglong *pullByteCounted, uchar ucByteToCount, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
E_RTN EMemory::BlockCountGet( ulonglong *pullBlockCounted, void *pBlockToCount, ulonglong ullBlockToCountSize, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
E_RTN EMemory::BlocksCountGet( ulonglong *pullBlockCounted, ulonglong *pullBlockWeightAccrued, EMemory::SC_BLOCK *pscBlockToCount, ulonglong ullBlockToCountCount, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );

 

Minimum
Version 1.0.0