Page 1 of 1

Hash - Averiguar Etiqueta

Posted: Thu Nov 26, 2020 3:26 pm
by MarioG
Hola Gente
Supongamos que tengo definido un Hash de la siguiente manera

Code: Select all

[DEFAULT]
codpos= 3500
localidad=Resistencia

[FR]
DesignFR=NO
PreviewFR=NO
DlgPrnFR=NO
Inicialmente, cuando no existe la etiqueta; consulto asi:

Code: Select all

if  "CODPOS" IN ::hIni 
...
end
Pero, el compilador me devuelve el error:
--------------------Configuración: mgGeCont - Debug--------------------
Harbour 3.2.0dev (r1801051438)
Copyright (c) 1999-2016, http://harbour-project.org/
D:\Fuen32\GesCont\Source\GC_Menu.prg(190) Error E0030 Syntax error "syntax error at 'IN'"
D:\Fuen32\GesCont\Source\GC_Menu.prg(213) Error E0010 ENDIF does not match IF
D:\Fuen32\GesCont\Source\GC_Menu.prg(236) Error E0030 Syntax error "syntax error at 'STATIC'"
3 errors

Leyendo la Ayuda de Harbour encuentro:

Code: Select all

hb_HHasKey(<hHash>, <xKey> [, @<nPos> ])
Pero al compilar me dice que la función no existe

Que puedo/debo usar para esta consulta ?
Gracias!

Re: Hash - Averiguar Etiqueta

Posted: Thu Nov 26, 2020 11:05 pm
by leandro
No si te falta el endif, así me funciona bien

Code: Select all

        if ndDet IN hDoc
            if valtype(hDoc[ndDet]) # "A"
                AADD(aError,"El Contenido Del Nodo Detalle Debe Ser De Tipo ARRAY")
            else
                oObjFac:detalle := hDoc[ndDet]
            endif
        else
            AADD(aError,"No Existe El Nodo Detalle")
        endif   
 

Code: Select all

//Otra forma 
cMatricula:=HGetKeyAt(aHash,nIndice)
 
http://forums.fivetechsupport.com/viewt ... ndome+hash

Re: Hash - Averiguar Etiqueta [SOLUCIONADO]

Posted: Thu Nov 26, 2020 11:49 pm
by MarioG
Gracias por responder Leandro
Incluyendo la cláusula que contiene IN, me sigue dando error (verfique el if - endif)
Pero lo que puedo haber escrito mal es:

Code: Select all

hb_HHasKey(<hHash>, <xKey>)
Ya que volví a probar y; no me da error.
De manera que de esta forma quedo solucionado

seguimos...