Criando hash

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Criando hash

Mensagem por JoséQuintas »

Sei lá.... apenas mostrando...

Código: Selecionar todos

LOCAL hMain, hFamily, hWho

   hMain := {=>}

   hFamily := {=>}
   hWho := {=>}
   hWho["money"] := 35
   hb_Hset( hFamily, "Emy", hWho )   // hFamily["Emy"] := hWho

   hWho := {=>}
   hWho["money"] := 25
   hb_Hset( hFamily, "Evy", hWho )   // hFamily["Evy"] := hWho

   hWho := {=>}
   hWho["money"] := 15
   hb_Hset( hFamily, "Ely", hWho )   // hFamily["Ely"] := hWho
  
   hb_Hset( hMain, "female", hFamily )   // hMain["female"] := hFamily


   hFamily := {=>}
   hWho := {=>}
   hWho["money"] := 10
   hb_Hset( hFamily, "Huey", hWho )   // hFamily["Huey"] := hWho

   hWho := {=>}
   hWho["money"] := 5
   hb_Hset( hFamily, "Dewey", hWho )   // hFamily["Dewey"] := hWho

   hWho := {=>}
   hWho["money"] := 0
   hb_Hset( hFamily, "Louie", hWho )   // hFamily["Louie"] := hWho
  
   hb_Hset( hMain, "male", hFamily )   // hMain["male"] := hFamily
  
   hb_MemoWrit( "list", hb_JsonEncode( hMain, 3, /*cCodePage )*/ ) )
Fiz um teste assim, e dá o mesmo resultado

Código: Selecionar todos

PROCEDURE Main

   LOCAL a, b, c

   WITH OBJECT a := hb_Hash()
      WITH OBJECT b := a[ "female" ] := hb_Hash()
         WITH OBJECT c := b[ "Emy" ] := hb_Hash()
            c[ "money" ] := 25
         ENDWITH
         WITH OBJECT c := b[ "Evy" ] := hb_Hash()
            c[ "money" ] := 25
         ENDWITH
         WITH OBJECT c := b[ "Ely" ] := hb_Hash()
            c[ "money" ] := 15
         ENDWITH
      ENDWITH
      WITH OBJECT b := a[ "male" ] := hb_Hash()
         WITH OBJECT c := b[ "Huey" ] := hb_Hash()
            c[ "money" ] := 10
         ENDWITH
         WITH OBJECT c := b[ "Dewey" ] := hb_Hash()
            c[ "money" ] := 5
         ENDWITH
         WITH OBJECT c := b[ "Louie" ] := hb_Hash()
            c[ "money" ] := 0
         ENDWITH
      ENDWITH
   ENDWITH
   hb_MemoWrit( "list2", hb_JsonEncode( a, 3 ) )
   
   RETURN
O resultado nos dois casos é este:

Código: Selecionar todos

{
   "female":
   {
      "Emy":
      {
         "money": 25
      },
      "Evy":
      {
         "money": 25
      },
      "Ely":
      {
         "money": 15
      }
   },
   "male":
   {
      "Huey":
      {
         "money": 10
      },
      "Dewey":
      {
         "money": 5
      },
      "Louie":
      {
         "money": 0
      }
   }
}
Apenas estou mostrando.
Não uso isso, apenas fiz o teste de curioso pra ver se dava certo.
Se algum dia precisar, já fica anotado aqui.... rs
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/
Avatar do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

Criando hash

Mensagem por NiltonGM »

Uso muito o Hash no qual chamo de Dicionário (chave e valor)... facilita muito a escrita do código.
Nilton Medeiros
nilton@sistrom.com.br
Responder