Quando forem criar variavéis para Json, criem com Hash() e depois convertam para cJson se desejam transmitir por algum body:http
apllication/json, sem precisar criar com: cJson := '{ hnfe: { num: '+cNum+', Emissao: '+Dtoc(date)... dá muito trabalho criar cjson
dessa maneira.
// Criando exemplo ...
Pesquisa resultou em 700 ocorrências: +Hash
Termo pesquisado: +hash
- 17 Out 2025 18:36
- Fórum: [x]Harbour
- Tópico: Exemplo de uso de HBCURL.LIB para xHarbour?
- Respostas: 10
- Exibições: 13638
- 27 Ago 2025 21:10
- Fórum: Contribuições, Dicas e Tutoriais
- Tópico: Aprendendo as coisas de forma mais fácil
- Respostas: 0
- Exibições: 1480
Aprendendo as coisas de forma mais fácil
... do produto, último da lista, etc.
Pode dizer lista do mercado, lista da farmácia, lista do açougue.
Notou alguma semelhança ?
ARRAY
#define
HASH
CLASSE / OBJETO
Antigamente.... eram só variáveis básicas
lista01 := "tomate 1kg"
lista02
um pouco pra frente vieram os arrays - listas ...
Pode dizer lista do mercado, lista da farmácia, lista do açougue.
Notou alguma semelhança ?
ARRAY
#define
HASH
CLASSE / OBJETO
Antigamente.... eram só variáveis básicas
lista01 := "tomate 1kg"
lista02
um pouco pra frente vieram os arrays - listas ...
- 21 Ago 2025 13:11
- Fórum: MiniGui
- Tópico: Só uma idéia que veio na cabeça pra OOP na HMG3
- Respostas: 12
- Exibições: 1628
Só uma idéia que veio na cabeça pra OOP na HMG3
... ainda.
Nessa primeira fase de mudança, tanto faz, tá sempre compatível.
Só nos blocos acima poderão ser meses pra mexer.
Se fosse mudar pra HASH... vixe... já acabaria toda compatibilidade logo na primeira alteração.
Entendeu ?
É alterar uma coisa em qualquer fonte, e continuar usando.
Não ...
Nessa primeira fase de mudança, tanto faz, tá sempre compatível.
Só nos blocos acima poderão ser meses pra mexer.
Se fosse mudar pra HASH... vixe... já acabaria toda compatibilidade logo na primeira alteração.
Entendeu ?
É alterar uma coisa em qualquer fonte, e continuar usando.
Não ...
- 20 Ago 2025 18:32
- Fórum: MiniGui
- Tópico: Só uma idéia que veio na cabeça pra OOP na HMG3
- Respostas: 12
- Exibições: 1628
Só uma idéia que veio na cabeça pra OOP na HMG3
... que o Array da forma que está, precisa a todo tempo consultar a tabela de referencia dos elementos (saber sua função).
Mudar _HMG_SYSDATA para Hash vai quebrar compatibilidade com qualquer código de usuário que utilize o Array diretamente.
Mudar _HMG_SYSDATA para Static idem, pois muda a forma ...
Mudar _HMG_SYSDATA para Hash vai quebrar compatibilidade com qualquer código de usuário que utilize o Array diretamente.
Mudar _HMG_SYSDATA para Static idem, pois muda a forma ...
- 20 Ago 2025 12:42
- Fórum: MiniGui
- Tópico: Só uma idéia que veio na cabeça pra OOP na HMG3
- Respostas: 12
- Exibições: 1628
Só uma idéia que veio na cabeça pra OOP na HMG3
... X'
If oHmgApp():FormByIndex( i ):Handle != ModalHandle
DisableWindow ( oHmgApp():FormByIndex( i ):Handle )
EndIf
EndIf
EndIf
Next i
Com hash:
For i := 1 To Len( _HMG_SYSDATA[ "form_name" ] )
If ! _HMG_SYSDATA [ "form_deleted" ] [i]
IF _HMG_SYSDATA [ "form_handle" ] [i] != 'X'
IF ...
If oHmgApp():FormByIndex( i ):Handle != ModalHandle
DisableWindow ( oHmgApp():FormByIndex( i ):Handle )
EndIf
EndIf
EndIf
Next i
Com hash:
For i := 1 To Len( _HMG_SYSDATA[ "form_name" ] )
If ! _HMG_SYSDATA [ "form_deleted" ] [i]
IF _HMG_SYSDATA [ "form_handle" ] [i] != 'X'
IF ...
- 20 Ago 2025 11:20
- Fórum: MiniGui
- Tópico: Só uma idéia que veio na cabeça pra OOP na HMG3
- Respostas: 12
- Exibições: 1628
Só uma idéia que veio na cabeça pra OOP na HMG3
Hash não vai mudar nada, só vai piorar as coisas.
Quanto mais alternativas pior, mais difícil consertar depois.
HMG Extended acho que vai ser difícil refazer, por tantas opções alternativas que foram criadas e ainda são mantidas.
Manter compatibilidade com tudo que inventaram torna tudo cada vez mais ...
Quanto mais alternativas pior, mais difícil consertar depois.
HMG Extended acho que vai ser difícil refazer, por tantas opções alternativas que foram criadas e ainda são mantidas.
Manter compatibilidade com tudo que inventaram torna tudo cada vez mais ...
- 19 Ago 2025 15:24
- Fórum: MiniGui
- Tópico: Só uma idéia que veio na cabeça pra OOP na HMG3
- Respostas: 12
- Exibições: 1628
Só uma idéia que veio na cabeça pra OOP na HMG3
Mudar _HMG_SYSDATA para hash seria opção (intenção de melhorar a legibilidade) ?
*--------------------------------------------------------------------*
Function GetSplitChildWindowHandle (cFormName, cParentForm)
*--------------------------------------------------------------------*
LOCAL i, hWnd ...
*--------------------------------------------------------------------*
Function GetSplitChildWindowHandle (cFormName, cParentForm)
*--------------------------------------------------------------------*
LOCAL i, hWnd ...
- 15 Ago 2025 12:38
- Fórum: [x]Harbour
- Tópico: QRCode 3.0 Assinatura de parâmetros
- Respostas: 22
- Exibições: 15066
QRCode 3.0 Assinatura de parâmetros
... bibliotecas como ACBr (se aplicável): Se você usa o componente ACBr, a funcionalidade já está implementada
...
Sim, José — a codificação da string para assinatura deve ser em UTF-8, sem BOM (Byte Order Mark). Isso é essencial para garantir que o hash gerado seja exatamente o esperado pela SEFAZ.
...
Sim, José — a codificação da string para assinatura deve ser em UTF-8, sem BOM (Byte Order Mark). Isso é essencial para garantir que o hash gerado seja exatamente o esperado pela SEFAZ.
- 10 Ago 2025 12:24
- Fórum: [x]Harbour
- Tópico: Compilar com -w3 -es2
- Respostas: 7
- Exibições: 5453
Compilar com -w3 -es2
... causa de multithread, mas pra LIB GUI acaba sendo interessante.
Opções:
- Classe
Não vai ter checagem se colocar nome errado
- um único array ou hash
Não vai ter checagem,
- array + define
Passa a ter checagem
#define VAR_IMPRESSORA 2
pub_var[ VAR_IMPRESSORA ]
- Função estática array
Cai no ...
Opções:
- Classe
Não vai ter checagem se colocar nome errado
- um único array ou hash
Não vai ter checagem,
- array + define
Passa a ter checagem
#define VAR_IMPRESSORA 2
pub_var[ VAR_IMPRESSORA ]
- Função estática array
Cai no ...
- 07 Ago 2025 08:42
- Fórum: Contribuições, Dicas e Tutoriais
- Tópico: Função converte Hash para XML
- Respostas: 0
- Exibições: 1629
Função converte Hash para XML
... hbmxml do harbour adicionar ao seu projeto hbmxml.hbc
/* ************************************************************************ */
function hb_hashToXML( hValue, n, cEOL )
LOCAL cXML
if valtype( n ) != "N"
n := -2
endif
if cEOL == NIL
cEOL := iif( n >= -1, hb_eol(), "" )
endif
cXML ...
/* ************************************************************************ */
function hb_hashToXML( hValue, n, cEOL )
LOCAL cXML
if valtype( n ) != "N"
n := -2
endif
if cEOL == NIL
cEOL := iif( n >= -1, hb_eol(), "" )
endif
cXML ...
- 16 Jul 2025 17:06
- Fórum: Contribuições, Dicas e Tutoriais
- Tópico: Tabela de CST/Classificação fiscal em PRG
- Respostas: 4
- Exibições: 1706
Tabela de CST/Classificação fiscal em PRG
Pra quem quiser.
Lembrando que tá saindo nova quase toda semana.
Mas talvez dê pra avaliar necessidades.
Convertida da tabela disponível no portal NFE nacional.
Formato PRG, carrega duas variáveis com hash/json.
Lembrando que tá saindo nova quase toda semana.
Mas talvez dê pra avaliar necessidades.
Convertida da tabela disponível no portal NFE nacional.
Formato PRG, carrega duas variáveis com hash/json.
- 13 Abr 2025 13:32
- Fórum: Legislação Fiscal e Tributária
- Tópico: MIT
- Respostas: 1
- Exibições: 1595
MIT
Segue o código base:
Proc Mit_Json()
Local hMit := hb_Hash()
Local cFile := "C:\Temp\" + ; // Pasta
"00000000" + ; // CNPJ
"-MIT-" + ; // -MIT-
StrZero( Year( Date() ), 2 ) + ; // Ano
StrZero( Month( Date() ), 2 ) + ; // Mes
'.json'
hMit[ "$schema" ] := "http://json-schema.org/draft-07 ...
Proc Mit_Json()
Local hMit := hb_Hash()
Local cFile := "C:\Temp\" + ; // Pasta
"00000000" + ; // CNPJ
"-MIT-" + ; // -MIT-
StrZero( Year( Date() ), 2 ) + ; // Ano
StrZero( Month( Date() ), 2 ) + ; // Mes
'.json'
hMit[ "$schema" ] := "http://json-schema.org/draft-07 ...
- 25 Mar 2025 15:06
- Fórum: [x]Harbour
- Tópico: PROBLEMAS AO CONVERTER HB_BASE64 UTF8 UTF-8
- Respostas: 14
- Exibições: 3318
PROBLEMAS AO CONVERTER HB_BASE64 UTF8 UTF-8
... x>, <n> ) => iif( ! HB_ISNUMERIC( <n> ), hb_mutexLock( <x> ) ;
iif( <n> <= 0, hb_MutexTryLock( <x> ), ;
hb_MutexTimeOutLock( <x>, <n> ) ) )
/* Hash item functions */
#xtranslate hb_Hash( [<x,...>] ) => Hash( <x> )
#xtranslate hb_HHasKey( [<x,...>] ) => HHasKey( <x> )
#xtranslate hb_HPos( [<x ...
iif( <n> <= 0, hb_MutexTryLock( <x> ), ;
hb_MutexTimeOutLock( <x>, <n> ) ) )
/* Hash item functions */
#xtranslate hb_Hash( [<x,...>] ) => Hash( <x> )
#xtranslate hb_HHasKey( [<x,...>] ) => HHasKey( <x> )
#xtranslate hb_HPos( [<x ...
- 16 Mar 2025 08:38
- Fórum: [x]Harbour
- Tópico: Ajuda pra chegar posicao num hash
- Respostas: 14
- Exibições: 6598
Ajuda pra chegar posicao num hash
Oi José..
sim, normalmente eu uso nomes de variáveis melhores, identificando.
usei dessa forma pra testes
muito obrigado
sim, normalmente eu uso nomes de variáveis melhores, identificando.
usei dessa forma pra testes
muito obrigado
- 15 Mar 2025 18:42
- Fórum: [x]Harbour
- Tópico: Ajuda pra chegar posicao num hash
- Respostas: 14
- Exibições: 6598
Ajuda pra chegar posicao num hash
Legal, mas tem algo estranho, compilação -w3 -es2 teria avisado.
Criou aitem3, o que facilitaria, mas não usou.
Poderia ser assim
IF cret!=NIL .AND. !EMPTY(CRET)
hresultado := cret["resultados"]
hItemList := aresultado['itens'] // antigo aitem1
hUmItem := hItemList[1] // antigo aitem2 ...
Criou aitem3, o que facilitaria, mas não usou.
Poderia ser assim
IF cret!=NIL .AND. !EMPTY(CRET)
hresultado := cret["resultados"]
hItemList := aresultado['itens'] // antigo aitem1
hUmItem := hItemList[1] // antigo aitem2 ...