Cuando empiezas a programar en VB.Net después de haberlo hecho anteriormente en VB 6.0 (Basic script, WSH, VBA… etc.) aparentemente todo es lo mismo, pero mejor, un lenguaje mas coherente y mejor estructurado. Sin embargo, es cierto que hay cosas que hechas de menos, principalmente funciones que usabas y que ahora ya no valen porque han sido sustituidas por otras funciones.
Os presentamos algunas equivalencias de VB 6.0 que os ahorrarán tiempo a la hora de trabajar con cadenas de caracteres en VB.Net.
Comandos equivalents:
Len >> miCadena.Length
Mid >> miCadena.SubString(<inicio>,<longitud>)
Replace >> miCadena.Replace(<cadanaBuscada>,<cadenaNueva>)
InStr >> miCadena.IndexOf(<cadenaBuscada>)
UCase >> miCadena.ToUpper
LCase >> miCadena.ToLower
Split >> miCadena.Split(<delimitador>)
Join >> String.Join(<delimitador>,<array>)
Trim >> miCadena.Trim
LTrim >> miCadena.TrimStart
RTrim >> miCadena.TrimEnd
Compare >> String.Compare
Left >> miCadena.SubString(<inicio>,<longitud>)
Right >> miCadena.SubString(<inicio>,<longitud>)
Por ejemplo, para obtener la longitud de una cadena de texto llamada “miCadena” en VB 6.0 sería
Longitud = Len(miCadena)
Mientras que en VB.Net sería
Longitud = miCadena.Length
Existen algunas funciones para las que no existe una directa traducción y otras que son nuevas. Como las funciones “String$” o “StrReverse” de VB 6.0 o las funciones “PadLeft” o “EndsWith”.
La función “String$(<c>,<x>)” existente en VB 6.0 que permitía construir una cadena de caracteres a partir de la cadena “c” repetida “x” veces. Por otro lado, la función “StrReverse(<c>)” permitía dar la vuelta a una cadena de caracteres, nunca llegue a entender muy bien su sentido, pero ahí estaba en VB 6.0.
Finalmente, VB.Net incorpora algunas nuevas funciones como “PadLeft” y “PadRight” que insertan caracteres blancos para alinear las cadenas de caracteres a la izquierda o derecha. Las funciones “EndsWith” o
“StartsWith” permiten comparar de forma sencilla como termina o empieza una cadena de caracteres.
Imprime este post
11 comentarios sobre Equivalencias entre VB.Net y VB 6.0 para la manipulación de strings
Y lo mismo pasará cuando saquen VB.2010 o como quieran llamarlo…. es lo que tiene usar un lenguaje no estándar, que estás a merced del becario que en ese momento esté diseñando el lenguaje de programación. Triste pero cierto
y … ¿que lenguaje está estandarizado? Ah! ¿Puede ser C?
Hombre, es lo que pasa por usar VB 6.0, así, en general.
Bienvenidos a la era de la Orientación a Objetos (daros prisa que se acaba).
Creo que no es tan sencillo en muchos casos decidir como y cuando se migra de una plataforma de desarrollo a otra. Sobre todo en las grandes empresas que tienen muchos “Legacy Systems” es imposible ir de una tecnología a otra sin un plan director que tiene que ser validado por el propio CIO (Chief Information Officer).
En cualquier caso y aunque ciertamente VB 6.0 y ASP 3.0 están obsoletos, Microsoft todavía conserva/mantiene lenguajes basados en la sintaxis de Basic Script como por ejemplo VBA, WSH y VBscript.
Hablando de ASP 3.0 , existe alguna tabla de equivalencias con ASP.NET?
gracias
La sintaxis de las funciones string es la misma. Aunque entre ASP 3.0 y ASP.NET realmente cambia casi todo, la forma de resolver los problemas es totalmente diferente. Pensaré en un post para aclarar tu duda, pero no es sencillo.
[...] Nos hemos mudado, puedes encontrar los últimos comentarios y correcciones al post en: http://www.xperimentos.com [...]
Acabo de ver esto mismo, pero de control C, control V en otro blog. No se quien lo abra copiado pero enhorabuena al que lo haya
echohecho.Hola Javier,
Pues si no recuerdo mal (hace ya algún tiempo que escribí este post) juraría que está basado en información que encontré en Inglés que traduje y adapte, lo realice cuando tuve que realizar en VB.Net un pequeño proyecto que partía de una aplicación en VB6.0.
Aunque también me compré un libro de McGraw Hill sobre migraciones de VB6.0 a VB.Net, así que no sé que decir. Lo que me parece extraño es que no pusiera la fuente porque es algo que suelo hacer sistemáticamente.
Coincido contigo sobre lo útil que esta pequeña tabla de equivalencias. A mí me ahorro mucho tiempo.
Saludos y gracias por el comentario,
Lcflores
¿Qué función puedo usar para rellenar de ceros a la isquierda en VB6.0?, padleft no me funciona.
Hola Nelson,
No se si estas programando en VB6.0 o VB.Net, supongo que será VB6.0 porque sino la función padleft no te daría problemas.
En cualquier caso, siempre puedes concatenar las cadenas tanto en VB6.0 o VB.Net:
var1 = "0000" & var2Si el problema es la longitud de la cadena de 0s, puedes calcular la longitud y crear una cadena de blancos ” ” y remplazarla por 0s (no sabría decir si es lo más eficiente, pero te ahoras un bucle).
En VB6.0
longitud = 5var1 = Replace(Space(longitud)," ","0") & var2
En VB.Net
longitud = 5var1 = Space(longitud).Replace(" ","0") & var2
Un saludo,
Lcflores
Deja tu comentario sobre Equivalencias entre VB.Net y VB 6.0 para la manipulación de strings
*Nota: Sólo se tendrán en cuenta los comentarios correctamente redactados y que estén relacionados con el tema de la entrada.RSS a los comentarios de esta entrada · TrackBack URI