import.css=/download/attachments/6062824/tecnologia.css

Converte uma matriz de dados (Array) em um tHashMap, podendo combinar as colunas para a chave de busca.

Sintaxe

oHash := AToHM( < aMatriz >, [ nColuna_1 ], [ nTrim_1 ], [ nColuna_N ], [ nTrim_N ] )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

aMatriz

vetor

Matriz com os elementos a serem convertidos

X

 

nColuna_1

numérico

Indica o número da coluna que contem o valor da chave (pesquisa)

 

 

nTrim_1

numérico

Tipo de Trim para as colunas do tipo caractere.

 

 

nColuna_N

numérico

Informar mais de uma coluna se necessário

 

 

nTrim_N

numérico

Tipo de Trim para as colunas do tipo caractere.

 

 

Retorno

Nome

Tipo

Descrição

oHash

objeto

Objeto da classe HashMap (tHashMap)

Observações

Exemplos

User Function ex_AToHM()
  Local cKey := ""
  Local oVal := Nil
  Local oHash1 := Nil
  Local oHash2 := Nil
  Local oHash3 := Nil
  Local oHash4 := Nil  
  Local aLista := {}
  
  // Cria a Lista com os elementos
  AAdd(aLista, {"item1",    23, " col3 a ", 1})
  AAdd(aLista, {" item2 ", 104, " col3 b ", 2})
  AAdd(aLista, {"item3",    41, " col3 c ", 3})
  AAdd(aLista, {" item4",    1, " col3 d ", 4})
  AAdd(aLista, {"item5",    18, " col3 e ", 5})
  
  // Por default usa a primeira coluna sem remover os espacos em branco
  oHash1 := AToHM(aLista)
  
  cKey := " item2 "
  lRet := HMGet(oHash1, cKey, oVal)
  If lRet == .T.
    VarInfo("Achou '" + cKey + "' ", oVal)
  Else
    ConOut("Nao achou '" + cKey + "'")
  EndIf
  
  // Limpa os dados do HashMap
  HMClean(oHash1)
  // Libera o objeto de HashMap
  FreeObj(oHash1)
  oHash1 := Nil
  // Chave composta de Hash - converte a 1 coluna sem trim e a coluna 3 com RTrim (trim a diretira)
  oHash2 := AToHM(aLista, 1, 0, 3, 2)
  // Gera uma chave composta de hash converte a 1 coluna sem trim e a coluna 2 com RTrim (trim a diretira)
  cKey := HMKey({" item2 ", " col3 b "}, 1, 0, 2, 2)
  lRet := HMGet(oHash2, cKey, oVal)
  If lRet == .T.
    VarInfo("Achou '" + cKey + "' ", oVal)
  Else
    ConOut("Nao achou '" + cKey + "'")
  EndIf
  
  // Limpa os dados do HashMap
  HMClean(oHash2)
  // Libera o objeto de HashMap
  FreeObj(oHash2)
  oHash2 := Nil
  
  // Chave composta de Hash - converte a 1 coluna com LTrim (a esquerda) e a coluna 3 com RTrim (trim a diretira)
  oHash3 := AToHM(aLista, 1, 1, 3, 3)
  // Gera uma chave composta de hash converte a 1 coluna com LTrim (a esquerda) e a coluna 2 com LTrim e RTrim (trim a diretira e a esquereda)
  cKey := HMKey({" item2 ", " col3 b "}, 1, 1, 2, 3)
  lRet := HMGet(oHash3, cKey, oVal)
  If lRet == .T.
    VarInfo("Achou '" + cKey + "' ", oVal)
  Else
    ConOut("Nao achou '" + cKey + "'")
  EndIf
  
  // Limpa os dados do HashMap
  HMClean(oHash3)
  // Libera o objeto de HashMap
  FreeObj(oHash3)
  oHash3 := Nil
  
  // Chave composta de Hash - converte a 1 coluna sem Trim e a coluna 2 (numerica)
  oHash4 := AToHM(aLista, 1, 0, 2, 0)
 
  // Limpando o Array que nao sera mais usado
  aLista := Nil

  // Gera uma chave composta de hash converte a 1 coluna sem Trim e a coluna 2 (numerica)
  cKey := HMKey({" item2 ", 104}, 1, 0, 2, 0)
  lRet := HMGet(oHash4, cKey, oVal)
  If lRet == .T.
    VarInfo("Achou '" + cKey + "' ", oVal)
  Else
    ConOut("Nao achou '" + cKey + "'")
  EndIf
  
  // Limpa os dados do HashMap
  HMClean(oHash4)
  // Libera o objeto de HashMap
  FreeObj(oHash4)
  oHash4 := Nil
  
Return

Abrangência

Totvs Application Server com versão igual ou superior a 7.00.131227A

Veja também