Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Funcion que devuelve array de texto

Estas en el tema de Funcion que devuelve array de texto en el foro de Visual Basic clásico en Foros del Web. Hola a todos, pues lo que pretendo es saber si existe una funcion similar a la de explode() de php, es decir, en una variable ...
  #1 (permalink)  
Antiguo 01/08/2007, 14:49
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Funcion que devuelve array de texto

Hola a todos, pues lo que pretendo es saber si existe una funcion similar a la de explode() de php, es decir, en una variable string tengo el siguiente contenido: "hola desde valencia", y usando la funcion indicando que ignore los espacios, algo como:
array= explodevb(" ",$variable), me devolveria lo siguiente:
array[0]= "hola"
array[1]= "desde"
array[2]= "valencia"

¿Existe?, gracias!
  #2 (permalink)  
Antiguo 02/08/2007, 01:50
 
Fecha de Ingreso: abril-2007
Mensajes: 187
Antigüedad: 17 años
Puntos: 1
Re: Funcion que devuelve array de texto

Estoy tan inspirado que te he hecho un ejemplo, espero que te sirva:

Código:
Dim Key() As String, Cadena As String, x As Integer

Cadena = "Hola a todos los foreros"
Key = Split(Cadena)

For x = LBound(Key) To UBound(Key)
  Debug.Print Key(x)
Next
Saludos.
  #3 (permalink)  
Antiguo 02/08/2007, 02:32
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Funcion que devuelve array de texto

Hola, parece que funciona, ¿pero me lo puedes explicar?, gracias
  #4 (permalink)  
Antiguo 02/08/2007, 03:13
 
Fecha de Ingreso: abril-2007
Mensajes: 187
Antigüedad: 17 años
Puntos: 1
Re: Funcion que devuelve array de texto

Sin problemas !!!


Cadena = "Hola a todos los foreros" => Variable que almacena la cadena, puede ser una variable, un TextBox u otro.

Key = Split(Cadena) => Aquí carga en el vector según la función Split por defecto el delimitador de cadena es " " (un espacio) pero eso lo puedes cambiar por lo que quieras.
EJ:
Cadena= "Hola mundo"
key=Split(cadena," ")
debug.print key(0)
debug.print key(1)

For x = LBound(Key) To UBound(Key)
Debug.Print Key(x)
Next
=> Con el bucle recorro desde el inicio del vector Lbound(key) hasta el final del vector Ubound(key) y con la x vector(x) lo recorres.

Si te confunde el Debug.Print cambialo por un TextBox.

Un saludo.
  #5 (permalink)  
Antiguo 02/08/2007, 03:20
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Funcion que devuelve array de texto

Gracias una ultima pregunta, ¿por que el "Debug" delante del print?, gracias por tu aclaracion =)
EDIT: Tambien me dice que se esperaba una matriz cuando utilizo la variable que ha usado split:
Código:
Line Input #nfic, linea
    trozo = Split(linea, "     ")
    mapa_instancias(n) = trozo(2)
En la ultima linea me dice que trozo no es una matriz ("se esperaba una matriz"), ¿que he hecho mal?, saludos!

Última edición por astut; 02/08/2007 a las 03:29
  #6 (permalink)  
Antiguo 02/08/2007, 04:37
 
Fecha de Ingreso: abril-2007
Mensajes: 187
Antigüedad: 17 años
Puntos: 1
Re: Funcion que devuelve array de texto

Hola, el Debug.Print muestra el resultado en la ventana 'Inmediato' si tienes visual abierto pulsa esta combinación Ctrl+g y veras la ventana.

Si no quieres poner los espacios así " " puedes usar Space(x) donde x son los espacios que tu quieras.

Mira las declaraciones y si no das con el error pon el code entero y le echamos un vistazo, ok.

PD: Edito por..
Código:
array[0]= "hola"
array[1]= "desde"
array[2]= "valencia"
JJEJEJEJEJEJ yo tambien soy de Valencia.

Saludos.
  #7 (permalink)  
Antiguo 02/08/2007, 05:13
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Funcion que devuelve array de texto

Código:
For n = 0 To 119
    Line Input #nfic, linea
    trozo = Split(linea, "     ")
    mapa_instancias_tipo(n) = trozo(0)
    mapa_instancias(n) = trozo(1)
    mapa_instancias_argumento1(n) = trozo(2)
    mapa_instancias_argumento2(n) = trozo(3)
Next
Saludos desde valenciaxD
  #8 (permalink)  
Antiguo 03/08/2007, 07:35
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Funcion que devuelve array de texto

¿Alguien podria responerme?, gracias ^^

PD: Bonitos botones
  #9 (permalink)  
Antiguo 03/08/2007, 09:47
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
Re: Funcion que devuelve array de texto

en las faq's hay un ejemplo de como hacer lo que estas buscando busca detenidamente...

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #10 (permalink)  
Antiguo 03/08/2007, 10:04
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Funcion que devuelve array de texto

¡Bravo!, me has hecho recorrer 4 paginas para encontrar un ejemplo de la funcion split y si lo he encontrado, ¿me ha solucionado el problema?, la respuesta es no, se usar la funcion, pero si lees mas arriba veras que produce error y no se porque es, a ver si ahora me puedes ayudar, saludos
Cita:
Iniciado por ASTUT
Gracias una ultima pregunta, ¿por que el "Debug" delante del print?, gracias por tu aclaracion =)
EDIT: Tambien me dice que se esperaba una matriz cuando utilizo la variable que ha usado split:
Código:

Line Input #nfic, linea
trozo = Split(linea, " ")
mapa_instancias(n) = trozo(2)

En la ultima linea me dice que trozo no es una matriz ("se esperaba una matriz"), ¿que he hecho mal?, saludos!
  #11 (permalink)  
Antiguo 05/08/2007, 08:07
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Funcion que devuelve array de texto

Resuelto, tenia que definirla como array... lol gracias por todo

Última edición por astut; 06/08/2007 a las 04:00
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:32.