Como Obtener valor de un textbox, desde un valor, hasta otro valor [VB6]

Iniciado por revenge1252, 25 Mayo 2012, 09:53 AM

0 Miembros y 1 Visitante están viendo este tema.

revenge1252

Hola, antes de nada gracias por leer mi duda ^^

aunque talvez no lo parezca, llevo un rato buscando en google pero nada, igual no busco correctamente pero no encuentro nada.

mi duda es la siguiente:

Como Obtener un valor de un textbox, desde un valor, hasta otro valor.

osease, un ejemplo, si yo tengo en un textbox este texto:

nombre="ejemplo", nombre="ejemplo2"

( Cuando digo Como Obtener un valor de un textbox, desde un valor, hasta otro valor, lo digo porque si no existe una funcion especifica, pense que una buena manera seria hacer un codigo, nose como almenos por ahora, que busque el valor nombre=" y que filtre todo el texto que venga despues hasta chocar con un ", pero talvez exista una funcion especifica o menos chapuza, ademas de que no se me ocurre del todo como hacer lo que acabo de decir... )

existe alguna funcion especifica o a alguien se le ocurre algun codigo para conseguir buscar en todo el textbox y extraer todos los nombres?

espero que se me entienda bien, gracias y saludos

Yoghurt

A ver si te entendí bien; Dibujate este texto:


TextBox = "Alberto compro 3 panes, Julio le sacó 1 pan, Rodrigo le puso 2 panes, Alberto se
quedó con 1, entonces Pedro miró la bolsa y sólo quedaban 2 panes, entonces Alberto pidió que
pusieran todos los panes en la bolsa y juntos contaron 5 panes."


quieres encontrar un nombre, ej:


nombres = Array("Alberto","Julio","Rodrigo", "Pedro")
For nombre In nombres:
   inicio_nombre = FindStr(nombre, TextBox, 0, VbStrCompare)
   If (inicio_nombre > 0) Then
       'encontró un nombre
       final_texto = FindStr(",", TextBox, inicio_nombre, VbStrCompare)
       If (final_texto > inicio_nombre) Then
           'encontro una coma ","
           frase = Mid(TextBox, inicio_nombre, final_texto)
       End If
   End If
Next


El codigo es explicativo solamente, aunq medianamente funcional tendrás que modificarlo pero en definitiva esto es lo que hace:

busca por un nombre Ej. "Julio" y si lo encuentra guarda la posición de éste en la variable inicio_nombre y procede a buscar el final de oracion (que sería una coma "," según tu explicaste) y guarda la posición de la coma en final_texto, luego para tomar esa oracion del texto lo adquiere mediante Mid y lo guarda en la variable frase. Esto es lo que contendría frase:

Buscar: Julio
Resultado: Julio le sacó 1 pan

Buscar: Alberto
Resultado: Alberto compro 3 panes

Buscar: Rodrigo
Resultado: Rodrigo le puso 2 panes

Importante: Nota que Alberto aparece varias veces, por lo que tendrás que hacer otro bucle dentro de FOR para que busque todos los Albertos que encuentre en el texto porque con este código sólo te debolvera el primer Alberto que encuentre. Tarea para la casa jjejejejeje


Saludos!

Yoghurt

Lo Siento, lei por enésima vez tu post y me di cuenta de mi error....

Lo que quieres buscar lo puedes hacer como te explique anteriormente claro optimizando el código tu mismo solo que en vez de buscar un nombre buscas >>Nombre="<< y en vez de buscar una coma, buscas >>"<< ... elimina los ">>" y los "<<".

Debes aprender a expresarte mejor creo que esa es la razon de que nadie te ha ayudado pues es un dilema simple en VB.

P.D.: Perdón por el mal codigo pero el tiempo apremia. Espero haberte ayudado.

revenge1252

Gracias por la ayuda!

y si, talvez no me exprese muy bien u.u

en fin saludos y gracias por ayudarme en este y los otros posts!

BlackZeroX

* Usa expresiones regulares...
* usa InStr() + un while() + mid$() ...

Intenta hacerlo (no creo que se te ayude con la logica pero si en algunas correcciones).

Dulces Lunas!¡.
The Dark Shadow is my passion.