viernes, 1 de febrero de 2008

La instrucción split en Visual Basic .Net

La instrucción split es una de las más poderosas de Visual Basic .Net. Es una de esas instrucciones que, cuando aprendes a utilizarla, la tendrás en casi todos los códigos que escribas. Y ¿para que sirve? Pues sirve para cortar una cadena por un delimitador que tengamos. Vemos un ejemplo:

Tenemos la cadena: HAC.123.OLE. Y quetemos cortarla por los puntos, es decir, tener el valor HAC, el valor 123, y el valor OLE. Una manera de conseguirlo es cortando la cadena con instrucciones left, right o mid. Pero claro, si cambian las posiciones (tenemos HACUI.12.OL) ya no nos sirve. Además, el código que tenemos que escribir es bastante farragoso. Pero son split lo tenemos muy sencillo:

Dim cadena As String
Dim tabla() As String
Dim n As Integer

cadena = "HAC.123.OLE"
tabla = Split(cadena, ".")

For n = 0 To UBound(tabla, 1)
MessageBox.Show(tabla(n))
Next
Lo que hacemos es utilizar una tabla dinámica (un array dinámico) llamado tabla; fijate que la variable se define como tabla(), es decir, le decimos que es una tabla de strings pero que no sabemos su longitud. Luego, le pasamos el split, cortando la cadena por el punto. Con esto, Visual Basic .Net va a escribir en cada celda que necesite de la variable tabla cada uno de los valores cortando por ese carácter, es decir, en la celda 0 tendremos HAC, en la celda 1 tendremos 123 y en la celda 2 tendremos OLE. Por último, utilizando ubound(tabla,1) sabemos que número de celdas tiene esta tabla.

¿Y que ocurre si nuestra cadena tiene más partes, por ejemplo HAC.123.OLE.234? Pues que split cortará esa cadena por los puntos y nuestro array dinámico tendrá 4 posiciones. Así de fácil.

Lo mejor es que pruebes con distintas cadenas y textos y veas como funciona, ya que explicar la función split es un poco complicado. De todas formas, es una forma de cortar cadenas sencilla, que requiere poco código (y queda muy limpio), siendo luego muy sencillo trabajar con cada una de las partes que tenemos. Además, si nos ocurre como os comentaba antes (que en lugar de HAC tenemos H.123, es decir, nos cambia el tamaño de la cadena), no pasa nada, ya que split no se basa en el tamaño, y siempre nos va a funcionar. Una pequeña instrucción muy poderosa.

7 comentarios:

Anónimo dijo...

Muchas Gracias

daguiflo dijo...

Creo que esta muy bien explicado.
gracias.

Anónimo dijo...

muy bueno! me va a ser de gran ayuda...se agradece

Anónimo dijo...

Who knows where to download XRumer 5.0 Palladium?
Help, please. All recommend this program to effectively advertise on the Internet, this is the best program!

Akikan! dijo...

Muy bien explicado y gracias por la informacion la verdad ahora que lo has mencionado Split es uno de mis comandos favoritos a la hora de realizar trabajo con cadenas pues un ejemplo seria tambien para validar correos que no deseamos se puedan registrar pues se cortaria con el @ y ya, nuevamente muchas gracias se entendio a la perfeccion

Anónimo dijo...

Tu ejemplo me ayudo, gracias

Vludena dijo...

HOla tengo un problema con una aplicacion escrita en visual studio 2003 y ahora tengo q agregarle algunas cosas en 2008 pero me lanza 2 errores grandes justo con split

Dim fitem As String
Dim f() As String
f = fitem.Split("|", 10)
ahi me dice q hay un error de resolucion de sobrecarga. espero puedan ayudarme