Função de compactação de strings, alguém informa qual lib?
Moderador: Moderadores
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Função de compactação de strings, alguém informa qual lib?
Amiguinhos,
Eu uso o Harbour 45.0 Flex e recentemente precisei armazenar conteúdo caractere em campo na minha tabela de NATUREZAS. Na verdade os famosos textos contendo os dispositivos legais.
Cheguei a criar um campo com 400 caracteres de tamanho, mas é inviável este uso pois teria uma demanda enorme de atualização em clientes.
Usar campo MEMO também não é minha solução.
A idéia é não mexer nas tabelas e sim no código fonte do sistema para colocar compactação de strings.
Se alguém tiver ai uma biblioteca compatível, um snipet, wrappler, codigo xBase puro ou até um pragma, já ajuda nesta empreitada.
Eu até tenho coisas do tipo, mas o fator RAW danificou minhas possibilidades. 25 anos de pesquisa, em um hd travado.
@braços.
Eu uso o Harbour 45.0 Flex e recentemente precisei armazenar conteúdo caractere em campo na minha tabela de NATUREZAS. Na verdade os famosos textos contendo os dispositivos legais.
Cheguei a criar um campo com 400 caracteres de tamanho, mas é inviável este uso pois teria uma demanda enorme de atualização em clientes.
Usar campo MEMO também não é minha solução.
A idéia é não mexer nas tabelas e sim no código fonte do sistema para colocar compactação de strings.
Se alguém tiver ai uma biblioteca compatível, um snipet, wrappler, codigo xBase puro ou até um pragma, já ajuda nesta empreitada.
Eu até tenho coisas do tipo, mas o fator RAW danificou minhas possibilidades. 25 anos de pesquisa, em um hd travado.
@braços.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Função de compactação de strings, alguém informa qual lib?
Amiguinhos,
Não sei se me fiz entender sobre minha necessidade na postagem anterior.
Aparentemente encontrei o que eu precisava, CharPack e CharUnPack
E porque digo "aparentemente"?
O fato é que elas não funcionam. Eu passo o conteúdo que quero compactar, um texto em memória ou nome de arquivo com o texto e o retorno destas funções é exatamente igual ao passado.
Quero que funcione como o ZIP, ou seja, eu passo um texto longo e compacto para caber em um pequeno espaço. Mas não quero usar arquivo externo para o processo, quero que ocorra em memória.
Exemplo:
Não sei se me fiz entender sobre minha necessidade na postagem anterior.
Aparentemente encontrei o que eu precisava, CharPack e CharUnPack
E porque digo "aparentemente"?
O fato é que elas não funcionam. Eu passo o conteúdo que quero compactar, um texto em memória ou nome de arquivo com o texto e o retorno destas funções é exatamente igual ao passado.
Quero que funcione como o ZIP, ou seja, eu passo um texto longo e compacto para caber em um pequeno espaço. Mas não quero usar arquivo externo para o processo, quero que ocorra em memória.
Exemplo:
Código: Selecionar todos
...
mVariavel := "Este é um texto contendo algo muito longo que gostaria de compactar e armazena-lo em um campo caracter"
...
mCompactada := CharPack( mVariavel )
...
? mCompactada
LKAS87432BFOVXIYDI62437FH==
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Função de compactação de strings, alguém informa qual lib?
Dá uma tentada com:
Ou... no harbourdoc, opção compactar/zip ou algo assim.
Código: Selecionar todos
hbmk2 -find zip
hbmk2 - find compr
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Função de compactação de strings, alguém informa qual lib?
Ola
o CharPack() só funciona com sequencia de letras iguais
o CharPack() só funciona com sequencia de letras iguais
Código: Selecionar todos
mVariavel := "aaaaaaaaaabbbbbbbbbbbbbbbbbbbcccccccccccccccccdddddddddddddddddddddffffffffffffffffff"
mCompactada := CharPack( mVariavel )
? mCompactada
? CharUnPack(mCompactada)Daniel
Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Função de compactação de strings, alguém informa qual lib?
Bom dia Rochinha,
Veja se o exemplo abaixo é o que você precisa:
Tenhos estas duas funções que uso para Encryptar / Descryptar meus arquivos ".HRB" e outros.
Abraço,
Veja se o exemplo abaixo é o que você precisa:
Código: Selecionar todos
// Exemplo para ZIPAR e CRIPTOGRAFAR uma string.
function main
local cStr := replicate( "1234567890", 10 )
local cKey := "MYPASSWORD"
cls
? len(cStr)
? cStr
cStr := hb_zcompress( cStr )
? ""
? len(cStr)
? cStr
cStr := sx_encrypt( cStr, cKey )
? ""
? len(cStr)
? cStr
cStr := sx_decrypt( cStr, cKey )
? ""
? len(cStr)
? cStr
cStr := hb_zuncompress( cStr )
? ""
? len(cStr)
? cStr
return NIL
Código: Selecionar todos
********************************
function HRB_SaveToFileEncrypted( cEncFileName, cKey, cHrbBody )
********************************
if !empty( cHrbBody )
cHrbBody := hb_zcompress( cHrbBody )
cHrbBody := sx_encrypt( cHrbBody, cKey )
hb_memowrit( cEncFileName, cHrbBody )
endif
return NIL
**********************************
function HRB_LoadFromFileEncrypted( cFile, cKey )
**********************************
local cHrbBody
cHrbBody := hb_memoread( cFile )
cHrbBody := sx_decrypt( cHrbBody, cKey )
cHrbBody := hb_zuncompress( cHrbBody )
return cHrbBody
Rossine.
Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Função de compactação de strings, alguém informa qual lib?
Amguinhos,
Valeu Kapiaba, JoseQuintas, Daniel, Rossine e todos os outros amigos que olharam mas não entenderam.
Quanto a função CharPack realmente ela não me serviria.
A bibliotecas que o Quintas compilou me deram base para pesquisa.
Quanto as funções hbZCompress e hbZUncompress elas me servirão pois poderei compactar/descompactar em memória.
Valeu, é isso aí.
Valeu Kapiaba, JoseQuintas, Daniel, Rossine e todos os outros amigos que olharam mas não entenderam.
Quanto a função CharPack realmente ela não me serviria.
A bibliotecas que o Quintas compilou me deram base para pesquisa.
Quanto as funções hbZCompress e hbZUncompress elas me servirão pois poderei compactar/descompactar em memória.
Valeu, é isso aí.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Função de compactação de strings, alguém informa qual lib?
Amiguinhos,
O intento foi conseguido.
A resposta está no tópico compressão/des-compressão de string e texto de/para Base64
O intento foi conseguido.
A resposta está no tópico compressão/des-compressão de string e texto de/para Base64
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.

