Public Class codifica
' piensa si las tablas deberían incluir un carácter de espacio
Private entrada As String ' tabla origen: "ABCDEF..."
Private salida As String ' tabla correspon: "¾½¼»º¹..."
' las tablas deben ser igual de largas sin repeticiones y sin espacios en blanco
' no se comprueban esos puntos se supone correcto...
Public Sub New(ByVal tablaOrigen As String, ByVal tablaDestino As String)
Me.entrada = tablaOrigen
Me.salida = tablaDestino
End Sub
' convierte un´texto desde un código de origen a otro de destino especificados en tablas
Public Function convertir(ByVal texto As String) As String
Dim txt As String = "" ' cadena de salida
Dim car As String = "" ' un único carácter
Dim n As Integer = 0 ' posición de un carácter en la cadena
On Error GoTo errorCaracter
For k As Integer = 0 To texto.Length - 1 ' se inicia un bucle
car = texto.ElementAt(k) ' toma un carácter del texto introducido
n = Me.entrada.IndexOf(car) ' lo busca en la cadena origen y toma su posición
txt &= Me.salida.ElementAt(n) ' con la posición hallada toma el carácter en dicha posición y lo añade
Next
Return txt
Exit Function
errorCaracter:
MessageBox.Show("se produjo un error un cáracter del texto no consta en el 'diccionario' origen." & vbCrLf & _
"Se aborta la conversión... es el carácter entrecomillado: ( " & car & " )", "ERROR: carácter fuera de la tabla...", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Function
' permite cambiar más adelante las tablas de conversión si se desea.
Public Sub cambiar_Codigos(ByVal tablaOrigen As String, ByVal tablaDestino As String)
Me.entrada = tablaOrigen
Me.salida = tablaDestino
End Sub
End Class