Função: Compress
Compacta um buffer recebido através de algoritmo proprietário.
Compress ( < @cBufferOut>, < @nLenghtOut>, < cBufferIn>, < nLenghtIn> ) --> lRet
Nome | Tipo | Descrição | Obrigatório | Referência |
cBufferOut | Caracter | Retorna 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 |
nLenghtOut | Numérico | Retorna 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 |
cBufferIn | Caracter | Indica o buffer que será compactado. Esse buffer pode conter caracteres especiais , e no máximo 1MB. | X | |
nLenghtIn | Numérico | Indica 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
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas