quarta-feira, 30 de janeiro de 2002

Máscara para String

'## Esta função retorna um string formatada de acordo com uma máscara especificada
'por cerquilhas(#), junto com seus complementos. Sendo assim o caractere que for
'diferente de cerquilha será implementado na string, na ordem indicada ##
Function Mask(sfString,sfMask,bfMode)
Dim sfPart, i, ifContChar, sfFormated,sfFormatedi
   sfPart = ""
   sfFormated  = ""
   sfFormatedi = ""
   '## Caso bfMode verdadeiro, formata a String da esquerda para a direita ###
   if not bfMode then
      for i = 1 to Len(sfMask)   '## Loop de 1 ate o tamanho da string ##
         sfPart = Mid(sfMask,i,1)'## Pega caractere por caracter da mascara ##
         if sfPart = "#" then
            ifContChar = ifContChar + 1 '## Adiciona posicoes ao contador da string ##
            sfFormated = sfFormated & Mid(sfString,ifContChar,1)
         else
            '## Se for diferente de cerquilha(#) adiciona o caractere seguinte,
            'à string ##
            sfFormated = sfFormated & sfPart
         end if
      next
   else
      '## Caso bfMode falso, formata a String da direita para a esquerda ###
      i          = Len(sfMask)   '## Iguala i ao tamanho da Mascara ##
      ifContChar = Len(sfString) '## Iguala iCont Char ao tamanho da String ##
      do while ifContChar > 0 and i > 0 '## Enquanto nenhum dos contadores for igual a 0 ##
         sfPart = Mid(sfMask,i,1) '## Pega um caractere da String ##
         if sfPart = "#" then
            sfFormatedi = sfFormatedi & Mid(sfString,ifContChar,1) '## Monta a string com formatação ##
            ifContChar  = ifContChar - 1 '## Subtrai do contador da String ##
         else if sfPart <> "#" then
            sfFormatedi = sfFormatedi & sfPart '## Adiciona complemento na String ##
            end if
         end if
         i = i - 1 '## Subtrai do contador da mascara ##
      loop


      '## Inverte a string após formatada ##
      i = Len(sfFormatedi)
      do while i > 0
         sfFormated = sfFormated & Mid(sfFormatedi,i,1)
         i = i - 1 '## Subtrai 1 do contador ##
      loop
   end if


   Mask = sfFormated


End Function
response.write "<font face=""Verdana"" size=""1"">"
response.write "Normal(false): 1012345678901 + ###.##.###.##-# = "&Mask("1012345678901","###.##.###.##-#",false)&"<br>Oculta valores a direita<br>"
response.write "Inverso(true): 1012345678901 + ###.##.###.##-# = "&Mask("1012345678901","###.##.###.##-#",true)&"<br>Oculta valores a esquerda<br><br>"
response.write "Telefone: 44442222 + ####-#### = "&Mask("44442222","####-####",false)&"<br>"
response.write "CPF: 02145877896 + ###.###.###-## = "&Mask("02145877896","###.###.###-##",false)
response.write "</font>"



Esta matéria foi postada originalmente no ASP4Developers por Rafael "M4yers" Rossi (site), que na época era "...". Hoje, vai saber...

0 comentários: