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
- O valor de “N” varia de 0 (zero) até 8 colunas para serem combinadas na chave de busca.
- Se nenhuma coluna for adicionada (“N” = 0), usa por padrão a primeira coluna (“nColuna” = 1) e sem trim (“nTrim” = 0).
- Os valores de “nTrim” podem ser: 0 não altera a palavra, 1 Elimina espaços a esquerda, 2 Elimina espaços a direita, 3 Elimina espaços a esquerda e a direita. Se o valor de ”nTrim” não for fornecido, considera que não deve eliminar espaços da palavra (“nTrim” = 0).
- Importante: Se após a conversão do Array em um HashMap este array não for ser mais usado, lembresse de liberar a memória do Array passando ele para Nulo (Nil).
Exemplos
Exemplo 1
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
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas