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

Buscar en un textbox

Estas en el tema de Buscar en un textbox en el foro de Visual Basic clásico en Foros del Web. Buenas, les explico mi situacion: Tengo un textbox multiline con un texto bastante largo, en ciertas partes de ese texto se encuentran algunas oraciones las ...
  #1 (permalink)  
Antiguo 05/12/2011, 11:10
 
Fecha de Ingreso: julio-2011
Mensajes: 53
Antigüedad: 12 años, 9 meses
Puntos: 2
Buscar en un textbox

Buenas, les explico mi situacion: Tengo un textbox multiline con un texto bastante largo, en ciertas partes de ese texto se encuentran algunas oraciones las cuales están encerradas por "[[[[" y finalizan con "]" por ejemplo:

[[[[Hola me llamo pepito, tengo 5 años]

Comienzan con [[[[ y terminan con ]

Ahora, yo intento rescatar esas oraciones y las voy guardando en un array (los cuales no son el problema). He aqui el codigo que he estado utilizando para buscar estas oraciones encerradas, y guardarlas en una variable de tipo string. El codigo parece perfecto, he estado horas buscando el error y no puedo encontrarlo.

Código:
Dim Comienza As Integer 'Indice en donde se encuentra "[[[["
Dim Almacen As String 'Variable en donde se almacena la oracion
Dim Finaliza As Integer 'Indice en donde se encuentra "]"

Comienza = 1

    Comienza = InStr(Comienza, Text1, "[[[[")
    Finaliza = InStr(Comienza, Text1, "]")
    Almacen = Mid(Text1, Comienza, Finaliza)
    MsgBox (Almacen)
Creo que el código esta bastante claro. Primero busco la posicion de "[[[[", luego comenzando desde la posicion de "[[[[" busco "]". Y luego agarro lo que esta en el medio de la posicion de "[[[[" y la de "]". Pero miren lo que pasa, por ejemplo, con el siguiente texto:

Cita:
hola como te va blabla [[[[una oracion que quiero agarrar] bla hola hola
Utilizando el procedimiento anterior, la variable Almacen me devuelve:

Cita:
[[[[una oracion que quiero agarrar] bla hola hola
Cuando tendria que devolverme:

Cita:
[[[[una oracion que quiero agarrar]
Como si no hubiera encontrado "]", pero si lo encuentra, porque si utilizo un msgbox para mostrarme la variable Finaliza, donde se almacena la posicion de "]", me la devuelve correctamente.

Bueno, como espectadores quisiera saber si me pueden ayudar, si encuentran el error.

Gracias!
  #2 (permalink)  
Antiguo 05/12/2011, 12:18
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: Buscar en un textbox

Hola, primero te digo donde está el problema para que intentes solucionarlo tu mismo, con la única intención de que aprendas, si tienes algun problema te lo resuelvo.

La función MID no te devuelve Desde - Hasta, sino que devuelve Desde - Cuantos o se un número de caracteres, por ejemplo si Desde = 5 y Hasta = 12, te devuelve 12 Caracteres empezando en la posición 5, cuando lo que pretendes no es esto.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #3 (permalink)  
Antiguo 05/12/2011, 12:51
Avatar de A.H.H  
Fecha de Ingreso: mayo-2007
Ubicación: IRUN,(GUIPUZCOA) España
Mensajes: 178
Antigüedad: 17 años
Puntos: 4
Respuesta: Buscar en un textbox

Hola no se si te sirve para tu proyecto usar la funcion replace

sirve para reemplazar un string por otro

ejemplo:

Cita:
Private Sub Form_Load()
Dim CADENA As String
CADENA = "[[[esto es la frase]]"

CADENA = Replace(CADENA, "[", "")
CADENA = Replace(CADENA, "]", "")

MsgBox CADENA

End Sub
En el ejemplo busca en la variable CADENA Los simbolos [ y los simbolos ] y Los reemplaza por lo que hay entre "" que en este caso es nada.
y nos queda la frase que hay en la variable CADENA limpia de simbolos.

salu2
  #4 (permalink)  
Antiguo 05/12/2011, 14:24
 
Fecha de Ingreso: julio-2011
Mensajes: 53
Antigüedad: 12 años, 9 meses
Puntos: 2
Respuesta: Buscar en un textbox

Cita:
Iniciado por erbuson Ver Mensaje
Hola, primero te digo donde está el problema para que intentes solucionarlo tu mismo, con la única intención de que aprendas, si tienes algun problema te lo resuelvo.

La función MID no te devuelve Desde - Hasta, sino que devuelve Desde - Cuantos o se un número de caracteres, por ejemplo si Desde = 5 y Hasta = 12, te devuelve 12 Caracteres empezando en la posición 5, cuando lo que pretendes no es esto.

Saludos
Te agradezco! Ahora conociendo el funcionamiento correcto ya pude solucionarlo

Cita:
Iniciado por A.H.H Ver Mensaje
Hola no se si te sirve para tu proyecto usar la funcion replace

sirve para reemplazar un string por otro

ejemplo:



En el ejemplo busca en la variable CADENA Los simbolos [ y los simbolos ] y Los reemplaza por lo que hay entre "" que en este caso es nada.
y nos queda la frase que hay en la variable CADENA limpia de simbolos.

salu2
Gracias, pero ya lo he solucionado a mi modo :)

Dejo la solución:

Código:
Dim Comienza As Integer 'Indice en donde se encuentra "[[[["
Dim Almacen As String 'Variable en donde se almacena la oracion
Dim Finaliza As Integer 'Indice en donde se encuentra "]"

Comienza = 1

    Comienza = InStr(Comienza, Text1, "[[[[")
    Finaliza = InStr(Comienza, Text1, "]")
    Almacen = Mid(Text1, Comienza, Finaliza - Comienza)
    MsgBox (Almacen)
Saludos!!

Etiquetas: textbox
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 20:45.