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 Expand view
- 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.
Supongo que la inicializacion de la tabla se puede hacer de esta forma:
- Code: Select all Expand view
- 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" )
o de esta otra forma:
- Code: Select all Expand view
- 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" )}