Comunidad Gambas-es

Versión completa: Extendiendo la clase String - Alphanumeric
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola a todos.
Aquí le propongo una función que convierte un texto en otro que solo contiene caracteres alfanuméricos.
Por favor si alguien tiene una mejor idea por favor no dude en compartirla.
GAMBAS
  1. '' Alphanumericals are a combination of alphabetical and numerical characters, and is used to describe the collection of Latin letters and Arabic digits or a text constructed from this collection.
  2.  
  3. Static Public Function Alphanumeric(strInput As String) As String
  4.  
  5.   Dim strSymbol As String
  6.  
  7.   Dim stxLeters As New String[]
  8.   Dim intKey As Integer
  9.   Dim stxOut As New String[]
  10.   Dim strOut As String
  11.  
  12.   Dim stxRepin As New String[]
  13.   Dim stxRepout As New String[]
  14.   Dim intRep As Integer
  15.  
  16.   stxOut.Clear
  17.   stxLeters.Clear
  18.  
  19.   stxLeters = Split(":a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z: :A:B:C:D:E:F:G:H:I:J:K:L:M:N:O:P:Q:R:S:T:U:V:W:X:Y:Z:á:à:â:ã:é:è:ê:í:ï:ó:ô:õ:ö:ú:ç:ñ:Á:À:Â:Ã:É:È:Ê:Í:Ï:Ó:Ô:Õ:Ö:Ú:Ç:Ñ:0:1:2:3:4:5:6:7:8:9", ":")
  20.   stxRepin = Split("Á:À:Â:Ã:É:È:Ê:Í:Ï:Ó:Ô:Õ:Ö:Ú:Ñ:á:à:â:ã:é:è:ê:í:ï:ó:ô:õ:ö:ú:ñ", ":")
  21.   stxRepout = Split("A:A:A:A:E:E:E:I:I:O:O:O:O:U:N:a:a:a:a:e:e:e:i:i:o:o:o:o:u:n", ":")
  22.  
  23.   For int = 1 To String.Len(strInput)
  24.     strSymbol = String.Mid(strInput, int, 1)
  25.     intKey = stxLeters.Find(strSymbol)
  26.     If intKey > -1 Then
  27.  
  28.       intRep = stxRepin.Find(strSymbol)
  29.       If intRep > -1 Then
  30.         strSymbol = stxRepout[intRep]
  31.       Endif
  32.  
  33.       stxOut.Add(strSymbol)
  34.     End If
  35.   Next
  36.  
  37.   strOut = stxOut.Join("")
  38.  
  39.   Return strOut
  40.  


Saludos.
Si el código debe servir también con respecto a la lengua italiana, entonces debes añadir también estas tres letras: ì - ò - ù
(28-04-2021, 17:10)vuott escribió: [ -> ]Si el código debe servir también con respecto a la lengua italiana, entonces debes añadir también estas tres letras: ì - ò - ù
Perfecto Vuott, las agregare, no es mi idea dejar a tan preciado idioma fuera.!! Smile
Saludos.