Usar caracteres especiais em strings no Harbour
Enviado: 13 Mar 2012 10:49
Olá Pessoal,
Em alguns sistemas, tenho alguns dados criptografados que fazem parte do fonte, o qual é personalizado para cada cliente, a saber: razao/nome, cpf/cnpj, serial e número de registro.
O sistema de gerenciamento interno, automaticamente gera um arquivo .CH na pasta do respectivo sistema com estas informações criptografadas, e o PRG principal faz a inserção deste .CH com uma chamado assim: #include "dadoloja.ch".
Ao mesmo tempo, o gerenciador interno atualiza a data e hora do PRG principal que é quem insere estes dados atualizados na compilação. Tudo isso funciona ok.
Ocorre que em Harbour, ele não entende que se trata de string, que está envelopada, e que portanto deveria aceitar qualquer coisa dentro do envelope, mas não é o que ocorre.
Posso envelopar uma string usando apóstrofe ('), aspas (") ou colchetes ([]). Neste caso, uso colchete porque pode haver apóstrofe ou aspas na criptografia.
Como usar no Harbour este envelopamento? Alguém tem alguma dica? Abaixo um pequeno exemplo do que ocorre:
Em alguns sistemas, tenho alguns dados criptografados que fazem parte do fonte, o qual é personalizado para cada cliente, a saber: razao/nome, cpf/cnpj, serial e número de registro.
O sistema de gerenciamento interno, automaticamente gera um arquivo .CH na pasta do respectivo sistema com estas informações criptografadas, e o PRG principal faz a inserção deste .CH com uma chamado assim: #include "dadoloja.ch".
Ao mesmo tempo, o gerenciador interno atualiza a data e hora do PRG principal que é quem insere estes dados atualizados na compilação. Tudo isso funciona ok.
Ocorre que em Harbour, ele não entende que se trata de string, que está envelopada, e que portanto deveria aceitar qualquer coisa dentro do envelope, mas não é o que ocorre.
Posso envelopar uma string usando apóstrofe ('), aspas (") ou colchetes ([]). Neste caso, uso colchete porque pode haver apóstrofe ou aspas na criptografia.
Como usar no Harbour este envelopamento? Alguém tem alguma dica? Abaixo um pequeno exemplo do que ocorre:
Código: Selecionar todos
/*
Para compilar: hbmk2 -lxhb
*/
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
Function Main()
Local cSenha, cRazao
HB_SETCODEPAGE('PT850')
HB_LANGSELECT('PT')
Clea Screen
cSenha := "654321B"
cRazao := "CONVENIÊNCIA INFORMAÇÃO E SERVIÇO"
cRazao := HB_CRYPT( cRazao, cSenha )
MemoWrit( "dados.txt", cRazao ) // grava em arquivo txt
? cRazao
cRazao := HB_DECRYPT( cRazao, cSenha )
? cRazao
/*
Abaixo, como preciso usar, mas não é possível.
*/
//cRazao := HB_DECRYPT( [© ü%Ú×7¦+3°ýttô53=‘J>kä@b] )
//? cRazao
Return Nil