Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/3279126062824/newLayouttecnologia.css |
|
Pagetitle | ||||
---|---|---|---|---|
|
Função: Compress
Compacta
...
um
...
buffer
...
recebido
...
através
...
de
...
algoritmo
...
proprietário.
Sintaxe
Bloco de código | ||
---|---|---|
| ||
Compress( <@cBufferOut> @cBufferOut >, <@nLenghtOut> @nLenghtOut >, <cBufferIn> cBufferIn >, <nLenghtIn> ) --> lRet nLenghtIn > )
|
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cBufferOut |
...
caractere | Retorna o buffer compactado, que contém os caracteres binários |
...
. |
...
X | X | |
nLenghtOut |
...
numérico | Retorna o tamanho do |
...
buffer compactado |
...
. | X | X |
cBufferIn |
...
caractere | Indica o buffer que será compactado |
...
. | X |
|
nLenghtIn |
...
numérico | Indica o tamanho do buffer informado que deverá ser considerado para compactação |
...
. | X |
|
Retorno
...
Nome | Tipo |
---|
...
Descrição |
---|
lRet |
...
lógico | Retorna verdadeiro (.T.), se o buffer for compactado com sucesso; caso contrário, falso (.F.). |
Observações
...
- <cBufferOut> deve ser do tipo caracter.
- <cBufferIn> pode conter caracteres especiais, e no máximo 1MB.
- Em builds superiores a 7.00.131227A, o tamanho de <cBufferIn> pode chegar ao valor contido na chave MaxStringSize, na seção General, do arquivo ini do TOTVS | Application Server.
- Quando <cBufferIn> for muito pequeno (menor que 128 bytes),
...
- <cBufferOut> poderá ser maior que <cBufferIn>.
- Essa função aceita e retorna caracteres especiais (ASCII < 32 e ASCII > 128),
...
- incluindo o zero binário (ASCII 0)
...
- .
...
- <cBufferOut> pode conter caracteres especiais, e não deve ser gravado diretamente em banco de dados, especialmente no
...
- TOTVS | DBAccess, EXCETO se utilizado um tipo de campo que permita conteúdo com caracteres especiais.
- Se o parâmetro <nLengthIn> for passado com valor negativo, a aplicação AdvPL é interrompida com a ocorrência de erro fatal "Unpacked size underflow on compress".
- Se o parâmetro <nLengthIn> for passado com valor maior do que o tamanho de <cBufferIn>, a aplicação AdvPL é interrompida com a ocorrência de erro fatal "Unpacked size overflow on compress".
Exemplos
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
user function compress1()
especiais //Exemplo 1 Local 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 ) return |
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
user function compress2()
////////////////////////////////////////////////////////////////////////// //Exemplo 2 user 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.
return
|
Abrangência
Advanced Protheus 6.09, Advanced Protheus 7.10, Microsiga Protheus 8.11, Protheus 10, TOTVS Application Server 10, ByYou Application Server
...
Veja também
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas