Pregunta: | 49335 - COMO SEPARAR UN DATO QUE CONTIENE NUMEROS Y LETRAS EN VB |
Autor: | Nancy Rivas |
El problema es que tengo un campo que contiene numeros y letras(ALFANUMERICO) y quiero separarlos, pero no se como hacer la diferencia entre estos, como le indico que hay letra o numero.
Ejemplo: Mi campo es IDPlan que contiene los datos siguentes: 12,15A,123,106B,etc. Quiero colocar los numeros en una columna(Cuenta) y la letra en otra columna(LetraCuenta) , El campo IDPlan cambia de longitud como pueden ver y por eso deseo saber como le hago para indicar que en ese caracter es letra o numero. Como referencia podria decirles que la letra siempre va al final, pero no todos los numeros contienen letra. Cuenta LetraCuenta 12 15 A 123 106 B Esto es en Visual Basic 6. Lo estuve intentando con substring pero me marca error. Si saben como hacerlo , en verdad se los agradeceria. |
Respuesta: | Eider Mauricio Aristizábal Erazo |
'El truco está en los números de la tabla ascii utilizando la funcion asc.
'Suerte Nancy Function Extraer(ByVal Cadena, ByRef Numeros, ByRef Letras) Dim i As Integer Dim Car As String For i = 1 To Len(Cadena) Car = Mid(Cadena, i, 1) 'Truco los numeros 0-9 en la tabla ascii If (Asc(Car) >= 48 And Asc(Car) <= 57) Then Numeros = Numeros + Car Else Letras = Letras + Car End If Next i Numeros = Trim(Numeros) Letras = Trim(Letras) End Function Function Probar() Dim Cadena, Numeros, Letras As String Cadena = "106 B" 'Cadena para analizar Num = "" 'Aqui se asignarán los numeros desde la función Letr = "" 'Aqui se asignarán las letras desde la función Extraer Cadena, Numeros, Letras MsgBox "Cadena " + Cadena + Chr(13) _ + "Numeros " + Numeros + Chr(13) _ + "Letras " + Letras, vbInformation, _ "Espero te sirva de ayuda" End Function 'Saludos desde cali colombia |