bollywood actresses hair loss hair rehab london contact number cheap hair extensions brazilian curly hair with closure hair extension fails human hair wigs black ponytail hairstyles 2018 sunny hair extensions uk hair extensions remy hair extensions weft koko one piece hair extensions clip hair
Caractere especial em senha gerada automaticamente

Caractere especial em senha gerada automaticamente

Adquira a assinatura vitalícia do site e passe a ter acesso aos arquivos exemplos, vídeos, revistas, livros e ao kit de montagem de ribbons. Você terá suporte por e-mail, caso necessite tirar dúvidas pontuais. Clique AQUI e veja como obter um dos nossos planos. Clique AQUI e faça uma visita a seção Downloads do site e verifique as centenas de arquivos que estará à sua disposição. Clique AQUI e faça uma visita a seção Vídeos do site e veja a lista que estará disponível ao se tornar o nosso assinante vitalício. Clique AQUI e saiba mais detalhes sobre o kit de montagem de ribbons (deixe seus aplicativos com aspecto profissional).

Usuário Samuel:

Avelino,

há alguns dias que graças a sua ajuda, foi possível criar um código onde é gerado uma senha, automaticamente, na soma dos caracteres do CPF do usuário. Agora senti a necessidade de adicionar também um caractere especial tipo: #,$,*,&.  Criei uma tabela onde, pela lógica usada na geração de senha pelo número de CPF do usuário, o código possa buscar este caractere especial.

Ex: no CPF de número 123.456.789-98 temos as seguintes somas:

1 + 2 + 3 = 6
4 + 5 + 6 = 15
7 + 8 + 9 = 24
9 + 8 = 17

Então, obtemos como resultado a seqüência 6152417 .

Baseado na coluna hexadecimal da tabela ASCII, a senha é 060F1811

Sabendo que o valor destes grupos de três dígitos pode chegar ao máximo de 27.  Então, criei a tabela com 27 caracteres especiais.  Quero que no código abaixo, nas soma dos dígitos, conforme explicado acima, ele inclua um caractere especial de acordo com a tabela que criei.

Public Function fncGerarSenha(CPF$)
Dim j%, p(4) As Variant
CPF = Replace(Replace(CPF, ".", ""), "-", "")
For j = 1 To 11
    Select Case j
        Case 1 To 3: p(0) = p(0) + Val(Mid(CPF, j, 1))
        Case 4 To 6: p(1) = p(1) + Val(Mid(CPF, j, 1))
        Case 7 To 9: p(2) = p(2) + Val(Mid(CPF, j, 1))
        Case 10 To 11: p(3) = p(3) + Val(Mid(CPF, j, 1))
    End Select
Next
p(0) = Hex(p(0)): p(1) = Hex(p(1))
p(2) = Hex(p(2)): p(3) = Hex(p(3))
fncGerarSenha = IIf(Len(p(0)) = 1, "0" & p(0), p(0)) & IIf(Len(p(1)) = 1, _
"0" & p(1), p(1)) & IIf(Len(p(2)) = 1, "0" & p(2), _
p(2)) & IIf(Len(p(3)) = 1, "0" & p(3), p(3))
End Function

Desde já, agradeço.

Suporte:

Samuel, em que posição você vai querer o caractere especial? No final do código?  Exemplo:

para o CPF 123.456.789-98 ::::> 060F1811x

Aonde x seria o resultado da soma dos três primeiros dígitos?

Exemplo do código, sem a necessidade da tabela:

Dim j%, p(5) As Variant, k
CPF = Replace(Replace(CPF, ".", ""), "-", "")
k = Split("*,@,#,$,%,&,!,(,),?,/,:,<,>,+,*,@,#,$,%,&,!,(,),?,/,:", ",")
For j = 1 To 11
    Select Case j
        Case 1 To 3: p(0) = p(0) + Val(Mid(CPF, j, 1))
        Case 4 To 6: p(1) = p(1) + Val(Mid(CPF, j, 1))
        Case 7 To 9: p(2) = p(2) + Val(Mid(CPF, j, 1))
        Case 10 To 11: p(3) = p(3) + Val(Mid(CPF, j, 1))
    End Select
Next
p(4) = k(p(0))
p(0) = Hex(p(0)): p(1) = Hex(p(1))
p(2) = Hex(p(2)): p(3) = Hex(p(3))
fncGerarSenha = IIf(Len(p(0)) = 1, "0" & p(0), p(0)) & IIf(Len(p(1)) = 1, _ 
"0" & p(1), p(1)) & IIf(Len(p(2)) = 1, "0" & p(2), _ 
p(2)) & IIf(Len(p(3)) = 1, "0" & p(3), p(3)) & p(4)
End Function

Usuário Samuel:

Avelino, no meio seria mais interessante.

Suporte:

Samuel, é só deslocar o p(4).  Altere, conforme esta parte:

...
fncGerarSenha = IIf(Len(p(0)) = 1, "0" & p(0), p(0)) & IIf(Len(p(1)) = 1, _ 
"0" & p(1), p(1))  & p(4) & IIf(Len(p(2)) = 1, _ 
"0" & p(2), p(2)) & IIf(Len(p(3)) = 1, "0" & p(3), p(3))
...

Usuário Samuel:

Muito Obrigado novamente pela ajuda, funcionou corretamente.

 


 

 


Não há comentário

Envie seu comentário: