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

Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 2x no Cartão de Crédito. 

Veja como comprar e saiba mais sobre o material oferecido,  clicando aqui.

Open v3

 

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: