USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  Visual Basic    (Validações)

Título da Dica:  Extrair somente os números
Postada em 7/3/2004 por Bussacarini         
Private Sub Command1_Click()
   '   Esta é a minha rotina para extrair os número.
   'Com ela, se obtém os seguintes resultados:
   '
   'Usuário digitou ::::: A função processou
   '  R$45 ..................... 45
   '  3>43 ..................... 343
   '  2.345,67 ................. 2345.67
   '  5.6.235.1 ................ 56235.1
   '  5,632.11 ................. 5632.11
   '  e2#67.0.U8 ............... 2670.8
   '  US$ 78.3334 .............. 78.3334
   '
   'Vantagens
   'O usuário pode digitar qualquer caractere por engano enquanto entra
   'com um valor e o programa não está nem aí...
   'Ele sempre pega a última vírgula ou ponto e entende que este seja o marco que separa
   'o número inteiro do decimal.
   'Ainda há a possibilidade de se 'dizer' à função que ignore os pontos ou vírgulas e
   'retorne um número puramente inteiro.
   'Esta é uma maneira mais fácil do que ficar filtrando tecla por tecla e ver qual é número,
   'ficar controlando quantidade de vírgulas, etc., uma vez que o usuário poderia
   'simplesmente clicar o botão direito do mouse e colar uma string: "HeHeHe!"
   'A função retorna uma string. Isto é prático porque dessa maneira pode-se atribuir o valor
   'à uma variável somente por usar a função val(). Isso evita erros no que tange a escopos. (Ex.:
   'você declara uma variável do tipo byte e a função é do escopo integer. ;-) ) Assim, apenas
   'faça o seguinte para usar a função para usar o valor retornado como número:
  
   iMinhaVar = Val(OnlyNumber(True, "R$ 256,95")) * 10
End Sub

'Se colocada num módulo, poderá ser usada por todos os diferentes formulários
Public Function OnlyNumber(bDecimal As Boolean, sOnlyNumber As String) As String
   Dim bComma As Boolean
   Dim sX As String
   Dim yX As Byte, yY As Byte
  
   If Len(sOnlyNumber) = 0 Then Exit Function
   yX = Len(sOnlyNumber)
   For yY = 1 To Len(sOnlyNumber)
      If Mid(sOnlyNumber, yX, 1) Like "[0-9]" Then
         sX = Mid(sOnlyNumber, yX, 1) & sX
      ElseIf (Mid(sOnlyNumber, yX, 1) = Chr(44) Or Mid(sOnlyNumber, yX, 1) = Chr(46)) And Not bComma And bDecimal Then
         sX = Chr(46) & sX
         bComma = True
      End If
      
      yX = yX - 1
   Next yY
   OnlyNumber = sX
End Function

por Glauco Marcelo Bussacarini
    bussacarini@ig.com.br
 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página