Código: Selecionar todos
static function SENHA_verifica (mUSUARIO , mSENHA)
local aSenha := 0, bSenha := 0, cSenha, mSENHADIGITADA := '';
mSENHADIGITADA := val(mSENHA)
aSenha := 123456
bSenha := aSenha * val ( right ( dtos ( date () ) , 2) )
// cSenha := left ( str (bSenha), 6)
cSenha := str (bSenha)
// MsgInfo (cSenha , 'cSenha antes len')
// if len(cSenha) > 6
// cSenha := substr (cSenha, 1, 6)
cSenha := substr (cSenha, 1, 10)
MsgInfo (aSenha ) / mostrará 123456
MsgInfo (bSenha ) / mostrará o resultado da multiplicacao de 123456x08 = 987648, pois o dia de hj eh 08. Mas, se fosse 31 (ultimo dia de agosto) seria: 3827123
MsgInfo (cSenha) / mostrara o resultado final de bSenha
MsgInfo (mSenhadigitada) / mostrara o q o usuario digitou na senha q devera ser comparada com cSenha
Se eu fizer um MsgInfo (len(cSenha)) / mostrara 6 se for 123456 x 8. Mas, se for 123456 x 31, LEN mostrara 7.
Então, pra não passar de 6, coloquei o substr ou left pra cortar e pegar apenas os 6 primeiros caracteres.
Neste caso,meus problemas começaram, pois se colocar left 6 ou substr 6, o compilador do harbour da hmg (pelo menos aqui comigo) está cortando e considerando apenas os 2 primeiros caracteres.
Então, para sanar o problema temporariamente, aumentei o left ou substr para 10. Somente dessa forma q pega os 6 primeiros caracteres.
Alguem já passou por esse problema?
obs.: não sei se seria nesse topico ou no da hmg, pois o problema - a meu ver, nao eh relacionado aa hmg e sim a função nativa do clipper/harbour.


