LEGADO EM VB6 - MSCARA PARA IPV6

 Tópico anterior Próximo tópico Novo tópico

LEGADO EM VB6 - MSCARA PARA IPV6

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#489528 - 17/07/2019 17:33:10

SINCLAIR
CRICIUMA
Cadast. em:Janeiro/2001


Prezados, um cliente meu (provedor de acessos internet) tem um pequeno aplicativo (fontes disponibilizados) que recebe e envia IP[]s no formato IPv4 (nnn.nnn.nnn.nnn), 4 grupos de 3 dgitos separados por ponto.
Agora preciso enviar e receber IPv6, ento preciso de uma mscara para digitao de IPv6 (letras de A F e dgitos 0 a 9), em oito grupos de 4 posies cada grupo, separados por dois-pontos (:).
No queria investir tempo em desenvolver uma mscara em TextBox, e o MSMask no gosto, meio chato de trabalhar.
Procurei no Planet Source Code e nada achei para digitar IPV6.
Algum conhece algum compomente?

Tudo de bom.

Euzbio Cruz
Cricima - SC


#489529 - 17/07/2019 17:56:26

EPISCOPAL
VARZEA GRANDE
Cadast. em:Maio/2009


Euzbio eu tenho uma maskbox que eu desenvolvi. Preciso saber se as letras de a-f e onde vai elas.

A exemplo de placa de carro
ABC-1234

As letras so os tres primeiros, e numeros os 4 ultimos.

No seu caso onde numero pode ser letra? Essa minha dvida.

____________________________________________________________________
Episcopal Studios


#489530 - 17/07/2019 18:02:39

SINCLAIR
CRICIUMA
Cadast. em:Janeiro/2001


Ol, colega EPISCOPAL

A mscara IPv6 :

AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA

Onde []A[] alfanumrico, aceitando dgitos de 0 a 9 e letras []A[] a []F[] (ou seja, hexadecimal, por ser um IP na verso 6).

Fiz no MSMask (masked edit box), mas ele meio chatinho de trabalhar, o usurio reclamou, eu concordei, meio chato de trabalhar e de usar.

Tudo de bom!

Euzbio Cruz
Cricima - SC


#489532 - 17/07/2019 23:15:16

LUIZCOMINO
SAO PAULO
Cadast. em:Maio/2009


Última edição em 17/07/2019 23:15:42 por LUIZCOMINO

Boa noite, eu criei essa funo alguns anos atrs , quem sabe te ajude, abrao!

http://www.vbmania.com.br/index.php?modulo=detalhe&id=9200


[]E conhecereis a verdade, e a verdade vos libertar. Joo 8:32[]


#489538 - 18/07/2019 11:37:30

SINCLAIR
CRICIUMA
Cadast. em:Janeiro/2001


Colega LUIZCOMINO:

Citação:
Boa noite, eu criei essa funo alguns anos atrs , quem sabe te ajude, abrao!

http://www.vbmania.com.br/index.php?modulo=detalhe&id=9200


[]E conhecereis a verdade, e a verdade vos libertar. Joo 8:32[]


Muito obrigado pela ajuda, colega. Irei tentar.

Tudo de bom!

Euzbio Cruz
Cricima - SC


#489540 - 18/07/2019 12:58:55

SINCLAIR
CRICIUMA
Cadast. em:Janeiro/2001


Ol, LUIZCOMINO!

Sua Sub, com a melhoria aplicada pelo colegar Marcelo Treze resolver o problema, bastando apenas eu fazer algumas adaptaes.

Muito Obrigado!

Tudo de bom!

Euzbio Cruz
Cricima - SC


Resposta escolhida #489544 - 18/07/2019 13:12:18

JOSE
CONGONHAS
Cadast. em:Dezembro/2003


[]veja esta tentativa que pode ser melhorada:
[]permite entrar com nmeros 0 a 9 e letras a at f e separa de 4 em 4 com dois pontos []:[], fazendo 8 campos ou mais de acordo com o desejado
[]Colocar um textbox no form, compilar executvel como administrador, digitar nmeros e letras para testar.


Function IPV6(OBJ As Object, Keyasc As Integer)

If Not ((Keyasc >= Asc([]a[]) And _
Keyasc <= Asc([]f[])) Or Keyasc >= ([]0[]) And Keyasc <= Asc([]9[]) Or Keyasc = 8) Then
  Keyasc = 0
  Exit Function

End If
If Keyasc <> 8 Then
  
  If Len(OBJ.Text) = 4 Then
    OBJ.Text = OBJ.Text + []:[]
    OBJ.SelStart = Len(OBJ.Text)
  End If
  If Len(OBJ.Text) = 9 Then
    OBJ.Text = OBJ.Text + []:[]
    OBJ.SelStart = Len(OBJ.Text)
  End If
  If Len(OBJ.Text) = 14 Then
    OBJ.Text = OBJ.Text + []:[]
    OBJ.SelStart = Len(OBJ.Text)
  End If
  If Len(OBJ.Text) = 19 Then
    OBJ.Text = OBJ.Text + []:[]
    OBJ.SelStart = Len(OBJ.Text)
  End If
  If Len(OBJ.Text) = 24 Then
    OBJ.Text = OBJ.Text + []:[]
    OBJ.SelStart = Len(OBJ.Text)
  End If
  If Len(OBJ.Text) = 29 Then
    OBJ.Text = OBJ.Text + []:[]
    OBJ.SelStart = Len(OBJ.Text)
  End If
  If Len(OBJ.Text) = 34 Then
    OBJ.Text = OBJ.Text + []:[]
    OBJ.SelStart = Len(OBJ.Text)
  End If
  If Len(OBJ.Text) = 39 Then
    OBJ.Text = OBJ.Text + []:[]
    OBJ.SelStart = Len(OBJ.Text)
  End If
End If

End Function
[]
[]como chamar a funo:
[]
Private Sub Text1_KeyPress(KeyAscii As Integer)
On Error Resume Next
IPV6 Text1, KeyAscii
End Sub



#489546 - 18/07/2019 15:24:12

SINCLAIR
CRICIUMA
Cadast. em:Janeiro/2001


Ol, JOSE

Eu havia fechado o tpico, mas reabri para te agradecer.

Com o teu cdigo eu vou criar uma OCX, ou na verdade deixar como CTL no cdigo fonte. Ser extremamente til.

Muito obrigado!

Tudo de bom!

Euzbio Cruz
Cricima - SC


#489550 - 18/07/2019 18:44:15

JOSE
CONGONHAS
Cadast. em:Dezembro/2003


Caro Sinclair mais um detalhe quanto ao compimento, no caso, para limitar o nmero de caracteres digitados, usar:

Private Sub Form_Load()
Text1.MaxLength = 39 []define o mximo de caracteres que podem serem digitados em cada textbox, valor 39 para o IPV6 com 8 campos de 4 em 4 mais os dois pontos
End Sub
ou, direto nas propriedades da textbox

Para o caso de querer tudo mausculo que o caso de Hexadecimal pode usar:

[]colocar propriedade do Form KeyPreview para True.

Private Sub Form_KeyPress(KeyAscii As Integer)
   KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

Por fim, est funo pode ser usada para outros formatos, como por exemplo: nmeros de telefones: (99)99999-9999 ou CPF: 999.999.999-99

At mais.




#489560 - 19/07/2019 10:24:54

SINCLAIR
CRICIUMA
Cadast. em:Janeiro/2001


Bom dia, Prezado JOSE!

Citação:
:
Caro Sinclair mais um detalhe quanto ao compimento, no caso, para limitar o nmero de caracteres digitados, usar:

Private Sub Form_Load()
Text1.MaxLength = 39 []define o mximo de caracteres que podem serem digitados em cada textbox, valor 39 para o IPV6 com 8 campos de 4 em 4 mais os dois pontos
End Sub
ou, direto nas propriedades da textbox

Para o caso de querer tudo mausculo que o caso de Hexadecimal pode usar:

[]colocar propriedade do Form KeyPreview para True.

Private Sub Form_KeyPress(KeyAscii As Integer)
   KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

Por fim, est funo pode ser usada para outros formatos, como por exemplo: nmeros de telefones: (99)99999-9999 ou CPF: 999.999.999-99

At mais.


Muito obrigado pela ajuda.

H muitos anos no mexia mais no VB6 e muita coisa eu j havia []desaprendido[].

Resolvido o problema.

Fechando o tpico.

Grato a todos!

Tudo de bom!


Euzbio Cruz
Cricima - SC


 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por SINCLAIR em 19/07/2019 10:25:29