Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 2 Atual »

Altera uma sequencia de bits de uma string para 1.

Sintaxe

StuffBit( < @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 1.

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 1 será nTest - 1.
  • Caso seja passado um valor menor do que 0 em nStart, a aplicação AdvPL é interrompida com a exceção "Start Bit out of bounds on StuffBit".
  • Caso seja passado um valor menor do que 0 em nTest, a aplicação AdvPL é interrompida com a exceção "Test Bit out of bounds on StuffBit".
  • Caso seja passado um valor menor do que 0 em nLength, a aplicação AdvPL é interrompida com a exceção "Length Bit out of bounds on StuffBit".
  • Caso o tamanho da string passada em cStr seja menor do que o valor passado em nLength, a aplicação AdvPL é interrompida com a exceção "Bit string out of bounds on StuffBit".

Exemplos

Exemplo 1
User Function tstStuff()
  Local cStr := "", cRet := ""
  Local nStart := 0, nTest := 0, nLen := 0
  
  cStr := chr( 0 ) + chr( 0 ) + chr( 0 ) + chr( 0 )
  nStart := 5
  nTest := 8
  nLen := Len( cStr ) - 1
  StuffBit( @cStr, nStart, nTest, nLen )

  //será exibida a string "00001111111100000000000000000000"
  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

UnStuff

  • Sem rótulos