Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/3279126062824/newLayouttecnologia.css |
Portuguese |
Pagetitle | ||
---|---|---|
|
...
...
...
|
Descompacta
...
um
...
buffer
...
(gerado
...
pela
...
função
...
Compress
...
)
...
recebido
...
através
...
do
...
algoritmo
...
proprietário.
Sintaxe
Bloco de código | ||
---|---|---|
| ||
UnCompress( <@cBufferOut> @cBufferOut >, <@nLengthOut> @nLenghtOut >, <cBufferIn> cBufferIn >, <nLengthIn> ) --> lRet nLenghtIn > )
|
Parâmetros
...
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cBufferOut |
...
caractere | Indica a variável string que receberá o buffer descompactado. | X | X |
...
nLenghtOut |
...
numérico | Indica o tamanho do buffer descompactado. | X | X |
cBufferIn |
...
caractere | Indica o buffer |
...
que será descompactado. | X |
|
...
nLenghtIn |
...
numérico | Indica o tamanho do buffer compactado |
...
. | X |
|
Retorno
Nome | Tipo | Descrição |
---|---|---|
lRet |
...
lógico | Retorna verdadeiro (.T.), se o buffer for descompactado com sucesso; caso contrário, falso (.F.). |
Observações
- <nLengthOut> deve indicar um tamanho suficiente de bytes necessário para descompactar <cBufferIn>. Após o processamento, em caso de sucesso, este parâmetro por referência será alimentado com o tamanho real utilizado por <cBufferOut>.
- Caso o <nLenghtOut> seja inferor ao necessário para descompactar o buffer, a função retornará .F. (Falso).
- <cBufferIn> deve conter o buffer gerado pela função Compress.
- <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.
- Essa função aceita e retorna caracteres especiais (ASCII < 32 e ASCII >
...
- 128)
...
- , incluindo o zero binário (ASCII 0).
- <nLenghtIn> é importante para a correta descompactação do buffer (normalmente informamos o tamanho integral de <cBufferIn>).
- Se o parâmetro <nLengthIn> for passado com valor negativo, a aplicação AdvPL é interrompida com a ocorrência de erro fatal "Packed size underflow on uncompress".
- 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 "Packed size overflow on uncompress".
Exemplos
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
user function uncomp1()
cBufferIn := xBuffer // (Buffer gerado pela função compress) nLenghtIn := Len( cBufferIn ) // Tamanho do buffer compactadocompactadocBufferOut cBufferOut := "" // Variável que receberá o bufferdescompactadonLenghtOut descompactado nLenghtOut := 0 // Tamanho do buffer descompactado // Descompacta o buffer gerado pela função Compress() UnCompress(cBufferOut @cBufferOut,nLenghtOut @nLenghtOut, cBufferIn, nLenghtIn ) return |
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
user function uncomp2()
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////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 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. endif
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