Página 2 de 2
função HScan() para hash table
Enviado: 06 Nov 2019 18:42
por JoséQuintas
ASimões... NÃO é fixo
a[ "livro" ] [ "titulo" ] := "sei la"
a[ "automóvel" ] [ "marca" ] [ "freio" ] := "volks"
a[ "computador" ] := "intel"
hb_HScan() não serve pra procurar "freio"
função HScan() para hash table
Enviado: 06 Nov 2019 19:54
por asimoes
Façam o teste e me digam, tem que explorar as possibilidades
Código: Selecionar todos
hRecord := Hb_Hash()
hRecord["automovel"] := Hb_Hash()
hRecord["automovel"]["marca"] := Hb_Hash()
hRecord["automovel"]["marca"]["modelo"] := "volks"
Hb_HSet(hTable, Hb_NtoS(1), hRecord)
hRecord := Hb_Hash()
hRecord["automovel"] := Hb_Hash()
hRecord["automovel"]["marca"] := Hb_Hash()
hRecord["automovel"]["marca"]["modelo"] := "fiat"
Hb_HSet(hTable, Hb_NtoS(2), hRecord)
nPos := hb_HScan( hTable, {| nKey, cChave | cChave["automovel"]["marca"]["modelo"] = "fiat"} )
função HScan() para hash table
Enviado: 06 Nov 2019 20:05
por asimoes
As possibilidades:
Quintas o seu exemplo a hash está com "automóvel" isso vai dar ruim
Código: Selecionar todos
nPos := hb_HScan( hTable, {| nKey, cChave | cChave["livro"]["titulo"] = "sei la"} )
nPos := hb_HScan( hTable, {| nKey, cChave | cChave["automovel"]["marca"]["freio"] = "volks"} )
nPos := hb_HScan( hTable, {| nKey, cChave | cChave["computador"] = "intel"} )
função HScan() para hash table
Enviado: 06 Nov 2019 21:35
por JoséQuintas
asimoes escreveu:Quintas o seu exemplo a hash está com "automóvel" isso vai dar ruim
Isso é o corretor ortográfico que faz.
Quanto aos exemplos, continuam no mesmo.
A pesquisa é sempre em um único hash, ou num sub-hash de nome conhecido.
Se os nomes são conhecidos... nem precisa hb_HSCan()... usa direto o valor.
Mas... tem algo estranho nesses exemplos.... eles compilam?
função HScan() para hash table
Enviado: 06 Nov 2019 21:47
por asimoes
JoséQuintas escreveu:Mas... tem algo estranho nesses exemplos.... eles compilam?
Sim e executam, acabei de fazer o teste aqui
Claro que não vai poder misturar esse tipo de coisa do seu exemplo, vai dar ruim
São hash tables distintas
função HScan() para hash table
Enviado: 06 Nov 2019 22:34
por JoséQuintas
É que já fixei -w3 -es2 no cérebro...
Assim compila:
https://github.com/vszakats/hb/blob/mas ... b/txml.prg
Código: Selecionar todos
hb_HScan( oFound:aAttributes, {| xKey, cValue | HB_SYMBOL_UNUSED( xKey ), ::cValue == cValue } ) == 0