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

... Assinatura do site por 1 ano + Kit MontaRibbons + 3 Livros em PDF + Diversas Revistas (pdf) de brinde, por apenas R$100,00
(
podendo parcelar em até 10 vezes no cartão de crédito)...

Clique aqui e obtenha mais detalhes do nosso kit completo e de como comprar.


Caractere especial em senha gerada automaticamente

Antes de iniciar a sua leitura, clique aqui e cadastre-se para receber comunicados sobre novos artigos.

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: