HEXADECIMAL

GUIGOR 23/02/2016 09:22:15
#458070
bom dia amigos,

Seguinte gostaria de saber como faço para converter valores em hexadecimal, ja procurei aqui e no google e nao encontrei nada em vb6, gostaria de saber pois preciso montar o qrcode da nota, ai teria que converter por ex 2012-09-27T16:20:34-03:00
EPISCOPAL 23/02/2016 09:35:02
#458072
vc quer converter numeros para hexadecimal? é isso?
GUIGOR 23/02/2016 10:29:09
#458080
nao so numero
ex 2012-09-27T16:20:34-03:00 para um valor hexadecimal
MOUSER 23/02/2016 10:57:00
#458081
Primeiro, você sabe a formula para fazer isso no papel? Uma recomendação, um dos meios mais faceis é converter para binario e depois hexadecimal, apesar que existem varias maneiras de se obter o resultado, mas como você pretende trabalhar com caracteres alem dos números decimais, o mais simples é decimal + caractere -> Binario -> Hexadecimal depois para voltar é o mesmo sistema, Hexadecimal -> Binario -> decimal+caractere.
Claro que dependendo do algoritimo que conseguir montar, alguns caracteres especiais ele converterá e quando voltar ao original, alguns itens volte com [Ô]?[Ô], mas com tratamento, tudo será convertido tranquilamente.
SINCLAIR 23/02/2016 14:10:16
#458093
Resposta escolhida


Colega,

Não seria a função Hex?

Exemplo: (use na janela Immediate)

print hex(121212121) [ô]Este é o valor em decimal
7398CD9 [ô]Este é o valor em hexadecimal


Se a geração do QRCode te servir através de uma OCX

https://dl.dropboxusercontent.com/u/26441349/QrCode.rar

Em anexo tem um módulo com conversões entre Hex, Decimal e até RGB. Não sei se te serve. Espero que sim,


GUIGOR 23/02/2016 22:09:16
#458126
amigo SINCLAIR eu realmente quero montar a linha digitavel do qrcode para imprimir na impressora bematech, entao no manual pede que primeiro eu converta o valor da data em hexadecimal como 2012-09-27T16:20:34-03:00 pegar esse vaor e converte em hexadecimal mais nao estou conseguindo fazer, esse ex q vc passou nao funcionou.

SINCLAIR 24/02/2016 10:57:46
#458149
Colega Guigor...

Segue a função, já convertendo o resultado para caixa baixa, conforme a NFCe exige (se não quiser caixa baixa, apenas retire o LCase do retorno)


Public Function StringToHex(ByVal StrToHex As String) As String

Dim strTemp As String
Dim strReturn As String
Dim I As Long
For I = 1 To Len(StrToHex)
strTemp = Hex$(Asc(Mid$(StrToHex, I, 1)))
If Len(strTemp) = 1 Then strTemp = [Ô]0[Ô] & strTemp
strReturn = strReturn & strTemp
Next I
StringToHex = LCase(strReturn)
End Function


Tudo de bom.
SINCLAIR 24/02/2016 17:44:24
#458178
Colega Guigor...

Acabei de testar a função acima, agora que estou em um PC de desenvolvimento.

Funcionou corretamente.

Fiz comparações com softwares emitentes de NFCe, inclusive o meu, e ficou igual.

Eu não tinha isto em VB6, foi preciso pesquisar e adaptar, mas tudo indica funcionamento correto.

Espero que seu problema se resolva.

Tudo de bom.
Tópico encerrado , respostas não são mais permitidas