A partir do dia 28/08 após às 20hs, o acesso ao TDN nas páginas logadas será integrado ao Identity Fluig, seguindo o mesmo padrão já adotado em outras ferramentas, como o Jira Produção.
Essa mudança tem como objetivo aprimorar a segurança e a gestão de acessos a ferramenta. Atenciosamente, equipe TOTVS.
Indica uma string codificada em BASE64 que será decodificada.
X
cFilePath*
caractere
Indica um arquivo para salvar o resultado da conversão
lChangeCase*
lógico
Se verdadeiro (.T.), nomes de arquivos e pastas serão convertidos para letras minúsculas; caso contrário, falso (.F.), não será feito nenhum ajuste no nome do arquivo informado. Valor padrão (.T.). Veja maiores informações em Observações.
Retorno
Nome
Tipo
Descrição
cRet
caractere
Retorna uma string convertida para o formato original
Observações
Os parâmetros marcados com (*) só estão disponíveis para versões superiores a 7.00.131227A (próximo label).
O parâmetro opcional lChangeCase foi introduzido pois em sistemas LINUX/UNIX, existe a diferenciação entre maiúsculo e minúsculo em nomes de arquivos ou pastas. Quando este parâmetro for informado, terá prioridade sobre comportamento de Case Sensitive definido pelas chaves de ini CASESENSITIVE ou SERVERTYPE. Porem, quando não especificado o parâmetro, o valor padrão (.T.) fica condicionado ao que está configurado nessas chaves.
#define CRLF Chr(13) + Chr(10)
#include "fileio.ch"
//+----------------------------------------------------------------------------+
//|Exemplo de uso da função Encode64 e Decode64 |
//+----------------------------------------------------------------------------+
User Function Exemplo()
Local cTexto := ""
Local cEncode64 := ""
Local cDecode64 := ""
Local cMensagem := ""
Local cLeitura1 := ""
Local cLeitura2 := ""
cTexto := "à noite, vovô kowalsky vê o ímã cair no pé do pingüim "
cTexto += "queixoso e vovó põe açúcar no chá de tâmaras do jabuti feliz."
cEncode64 := Encode64(cTexto)
cDecode64 := Decode64(cEncode64)
cMensagem := "Pangrama origem: [" + cTexto + "]"
cMensagem += CRLF + "Texto -> Texto64: [" + cEncode64 + "]"
cMensagem += CRLF + "Texto64 -> Texto: [" + cDecode64 + "]"
MsgInfo(cMensagem, "Exemplo")
// Leio o arquivo c:\temp\tst.jpg compactando e transformando em BASE64
cEncode64 := Encode64(,"c:\\temp\\tst.jpg",.T.,.F.)
// Faço o Decode do BASE64 direto para o arquivo tst_1.jpg (a descompactação já é tratada automaticamente)
cDecode64 := Decode64(cEncode64,"c:\\temp\\tst_1.jpg",.F.)
// Para testes/comparações. leio os dois arquivos
fHdl := fOpen("c:\\temp\\tst.jpg",FO_READ,,.F.)
if fHdl = -1
conout("Erro ao abrir arquivo.")
return
endif
nLen := fSeek(fHdl,0,FS_END)
fSeek(fhdl, 0)
fRead(fHdl, cLeitura1, nLen)
fClose(fHdl)
fHdl_1 := fOpen("c:\\temp\\tst_1.jpg",FO_READ,,.F.)
if fHdl_1 = -1
conout("Erro ao abrir arquivo.")
return
endif
nLen := fSeek(fHdl_1,0,FS_END)
fSeek(fhdl_1, 0)
fRead(fHdl_1, cLeitura2, nLen)
fClose(fHdl_1)
// Como foi um Encode64 e Decode64 os arquivos precisar ser iguais!
if (cLeitura1 == cLeitura2)
conout("Encode64/Decode64 realizado com sucesso")
endif
Return