Á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

Versão 1 Próxima »

Função: Compress

Compacta um buffer recebido através de algoritmo proprietário.

Compress ( < @cBufferOut>, < @nLenghtOut>, < cBufferIn>, < nLenghtIn> ) --> lRet

NomeTipoDescriçãoObrigatórioReferência
cBufferOutCaracterRetorna o buffer compactado que contém os caracteres binários, incluindo zero binário. Observação: A variável deve ser do tipo caracter. X X
nLenghtOutNuméricoRetorna o tamanho do buffer compactado. Quando o buffer de dados a ser compactado for muito pequeno, o buffer compactado pode ser maior que o buffer original. X X
cBufferInCaracterIndica o buffer que será compactado. Esse buffer pode conter caracteres especiais , e no máximo 1MB. X
nLenghtInNuméricoIndica o tamanho do buffer informado que deverá ser considerado para compactação. O Tamanho informado não pode ser menor que zero , e nem maior que o tamanho do proprio buffer informado. X
    lRet(logico)
  • Retorna verdadeiro (.T.), se o buffer for compactado com sucesso; caso contrário, falso (.F.).
  • Quando o buffer original for muito pequeno (menor que 128 bytes), o buffer de saída poderá ser maior.
  • Essa função aceita e retorna caracteres especiais ( ASCII < 32 e ASCII > 128 ), incluindo o zero binário ( ASCII 0 ) .
  • O resultado dessa função pode conter caracteres especiais, e não deve ser gravado diretamente em banco de dados, especialmente no TOTVSDBAccess. -- EXCETO se utilizado um tipo de campo que permita conteúdo com caracteres especiais 

     

 

//Exemplo 1Local cBuffer := ""Local nX := 0  // Monta linha para teste de compressão  for nX := 1 to 200    cBuffer += "Linha do buffer de Teste "  next nX               cBufferIn  := cBuffer  nLenghtIn  := Len( cBufferIn )  cBufferOut := ""   nLenghtOut := 0  Compress( cBufferOut, nLenghtOut, cBufferIn, nLenghtIn )//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Exemplo 2user function TSTComp      Local cNaoComp := replicate( 'A', 1024 )      Local cComp := '', cResult := ''      Local nTamNaoComp := len( cNaoComp )      Local nTamComp := 0      Local bResp            bResp := compress( @cComp, @nTamComp, cNaoComp, nTamNaoComp )      If( bResp )       	Alert( "Buffer Compactado - Tamanho Compactado" + str( nTamComp ) )      else      	Alert( "Falha ao compactar o Buffer!" )      	return      endif            bResp := uncompress( @cResult, @nTamNaoComp, cComp, nTamComp )      If( !bResp )       	Alert( "Falha ao descompactar o Buffer!" )      	return      endif            if( cResult != cNaoComp )      	Alert( "Buffer descompactado diferente do buffer original" )      else      	Alert( "Buffer descompactado igual ao buffer original" )      endif            return .t.
Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server

  • Sem rótulos