Iniciandome en el manejo de tablas HASH
Posted: Mon Mar 12, 2012 11:59 am
Pues mi primer contratiempo en el manejo de tablas hash.
No se como detectar si ya existe un elemento en la tabla hash.
Supongo que una vez detectado que no existe añadir uno mas sería tan facil como esto ¿ no ?:
aHash [ cNuevaMatricula ] := Tcoche():New( cNuevaMatricula )
Supongo que la inicializacion de la tabla se puede hacer de esta forma:
o de esta otra forma:
No se como detectar si ya existe un elemento en la tabla hash.
Supongo que una vez detectado que no existe añadir uno mas sería tan facil como esto ¿ no ?:
aHash [ cNuevaMatricula ] := Tcoche():New( cNuevaMatricula )
Code: Select all
function main()
PUBLIC hHash := {=>},cMatricula
aHash[ "M-1234-DF" ] := Tcoche():New( "M-1234-DF" )
aHash[ "V-4321-AF" ] := Tcoche():New( "V-4321-AF" )
aHash[ "B-1111-AA" ] := Tcoche():New( "B-1111-AA" )
aHash[ "O-2222-BB" ] := Tcoche():New( "O-2222-BB" )
aHash[ "L-3333-CC" ] := Tcoche():New( "L-3333-CC" )
msginfo( hScan ( aHash , "O-2222-BB" ) ) // Me da siempre 0
return nil
**************************************************************************
CLASS Tcoche
DATA cMatricula,cMarca,nPrecio
CLASSDATA lRegistered AS LOGICAL
METHOD New ( cIndicativo ) CONSTRUCTOR
METHOD End()
ENDCLASS
METHOD New ( cMatricula ) CLASS Tcoche
DEFAULT cMatricula:="X-9999-XX"
::cMatricula:=cMatricula
::cMarca:="¿?"
::nPrecio:=0
return Self
METHOD End() CLASS Tcoche
::cMatricula:=""
::cMarca:=""
::nPrecio:=-1
return .T.
Code: Select all
PUBLIC hHash := {=>}
aHash[ "M-1234-DF" ] := Tcoche():New( "M-1234-DF" )
aHash[ "V-4321-AF" ] := Tcoche():New( "V-4321-AF" )
aHash[ "B-1111-AA" ] := Tcoche():New( "B-1111-AA" )
aHash[ "O-2222-BB" ] := Tcoche():New( "O-2222-BB" )
aHash[ "L-3333-CC" ] := Tcoche():New( "L-3333-CC" )
Code: Select all
PUBLIC hHash := {"M-1234-DF" => Tcoche():New("M-1234-DF"),;
"V-4321-AF" => Tcoche():New( "V-4321-AF" ),;
"B-1111-AA" => Tcoche():New( "B-1111-AA" ),;
"O-2222-BB" => Tcoche():New( "O-2222-BB" ),;
"L-3333-CC" => Tcoche():New( "L-3333-CC" )}