Árvore de páginas

Altera uma sequencia de bits de uma string para 0.

Sintaxe

UnStuff( < @cStr >, < nStart >, < nTest >, < nLength > )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cStr

caractere

Indica a string que será modificada.

X

X

nStart

numérico

Indica o índice do bit inicial.

X

 

nTest

numérico

Indica a quantidade de bits que serão colocados em 0.

X

 

nLength

numérico

Indica o índice do último byte que será modificado.

X

 

Observações

  • nStart inicia em 1.
  • nLength inicia em 0.
  • Caso seja passado 0 em nStart e nTest for maior do que a quantidade de bits indicada por nLength ( (nLength + 1) 8 ), a quantidade de bits que serão alteradas para 0 será nTest - 1.
  • Caso seja passado um valor menor do que 0 em nLength, a função considerará como se tivesse colocado o valor máximo do índice.
  • Caso seja passado um valor menor do que 0 em nStart, a aplicação AdvPL é interrompida com a ocorrência de erro fatal "Start bit underflow on UnStuff".
  • Caso o tamanho da string passada em cStr seja menor do que o valor passado em nLength, a aplicação AdvPL é interrompida com a ocorrência de erro fatal "Bit string length out of bounds on UnStuff".
  • A partir da build 131227, caso seja passado um valor menor do que 0 em nTest, a aplicação AdvPL é interrompida com a ocorrência de erro fatal "Test Bit underflow on UnStuff".

Exemplos

Exemplo 1
User Function tstUnStuff()
  Local cStr := "", cRet := ""
  Local nStart := 0, nTest := 0, nLen := 0
  
  cStr := chr( 255 ) + chr( 255 ) + chr( 255 ) + chr( 255 )
  nStart := 5
  nTest := 8
  nLen := Len( cStr ) - 1
  UnStuff( @cStr, nStart, nTest, nLen )
  
  //será exibida a string "11110000000011111111111111111111"
  conout( bitstrdump( cStr ) )
return

STATIC Function BitStrDump( cString, nStart, nLength )
  Local cStrDump := '', cAsc := ''
  Local nTamStr := len( cString ), nI := 0
  DEFAULT nStart  := 1
  DEFAULT nLength := nTamStr
  
  cString := SubStr( cString, nStart, nLength )
  For nI := 1 to nTamStr
    cASC := SubStr( cString, nI, 1 )
    cStrDump += NToC( Asc( cASC ), 2, 8, "0" )
  Next nI
Return cStrDump

Veja também

 

  • Sem rótulos