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

[SOLUCIONADO] Seleccionar parte de un texto (inicio y fin)

Estas en el tema de Seleccionar parte de un texto (inicio y fin) en el foro de Visual Basic clásico en Foros del Web. Hola, Estoy programando un sistema simple y tengo un texto muy grande y lo que quiero es acortarlo poniendo la palabra de inicio y la ...
  #1 (permalink)  
Antiguo 27/07/2013, 10:41
 
Fecha de Ingreso: julio-2010
Mensajes: 158
Antigüedad: 14 años, 5 meses
Puntos: 1
De acuerdo Seleccionar parte de un texto (inicio y fin)

Hola,

Estoy programando un sistema simple y tengo un texto muy grande y lo que quiero es acortarlo poniendo la palabra de inicio y la palabra de fin.

Supongamos:

"Hola, bienvenidos a forosdelweb.com, la mejor página."

Y yo quiero que muestre: "bienvenidos a forosdelweb.com"

Intenté con las funciones left, mid y right,, pero yo necesito marcar las palabras, no la cantidad de caracteres.
  #2 (permalink)  
Antiguo 27/07/2013, 10:57
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años, 1 mes
Puntos: 53
Respuesta: Seleccionar parte de un texto (inicio y fin)

Hola:

Para ello puedes utilizar por ejemplo esta funcion

Código vb:
Ver original
  1. Private Sub Command1_Click()
  2. MsgBox CadenaEntre("Hola, bienvenidos a forosdelweb.com, la mejor página.", "bien", ".com")
  3. End Sub
  4.  
  5. Public Function CadenaEntre(Cadena As String, Desde As String, Hasta As String) As String
  6.   Dim Inicio As Integer, Final As Integer
  7.   ' Buscamos donde empieza el texto inicial
  8.  Inicio = InStr(Cadena, Desde)
  9.   ' Si no la encuentra sale de la funcion sin devolver nada
  10.  If Inicio = 0 Then Exit Function
  11.   ' Buscamos donde empieza el texto final
  12.  Final = InStr(Inicio + 1, Cadena, Hasta)
  13.   ' Si no la encuentra sale de la funcion sin devolver nada
  14.  If Final = 0 Then Exit Function
  15.   ' Devuelve el dato buscado
  16.  CadenaEntre = Mid$(Cadena, Inicio, Final + Len(Hasta) - Inicio)
  17. End Function
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #3 (permalink)  
Antiguo 27/07/2013, 11:43
 
Fecha de Ingreso: julio-2010
Mensajes: 158
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Seleccionar parte de un texto (inicio y fin)

Cita:
Iniciado por erbuson Ver Mensaje
Hola:

Para ello puedes utilizar por ejemplo esta funcion

Código vb:
Ver original
  1. Private Sub Command1_Click()
  2. MsgBox CadenaEntre("Hola, bienvenidos a forosdelweb.com, la mejor página.", "bien", ".com")
  3. End Sub
  4.  
  5. Public Function CadenaEntre(Cadena As String, Desde As String, Hasta As String) As String
  6.   Dim Inicio As Integer, Final As Integer
  7.   ' Buscamos donde empieza el texto inicial
  8.  Inicio = InStr(Cadena, Desde)
  9.   ' Si no la encuentra sale de la funcion sin devolver nada
  10.  If Inicio = 0 Then Exit Function
  11.   ' Buscamos donde empieza el texto final
  12.  Final = InStr(Inicio + 1, Cadena, Hasta)
  13.   ' Si no la encuentra sale de la funcion sin devolver nada
  14.  If Final = 0 Then Exit Function
  15.   ' Devuelve el dato buscado
  16.  CadenaEntre = Mid$(Cadena, Inicio, Final + Len(Hasta) - Inicio)
  17. End Function

El ejemplo es perfecto, pero cuando le puse un texto muy grande dentro de una variable y lo coloqué así: Label1.Caption = CadenaEntre(ContEnido, "Fichero", "¿Quiere")

Me muestra el siguiente error: byref argument type mismatch
Y marca la siguiente linea: ContEnido = WebBrowser1.Document.Body.innertext
Ya que yo saco el texto de Internet.



EDITO: SOLUCIONADO

Cambié lo siguiente: Label1.Caption = CadenaEntre(ContEnido, "Fichero", "¿Quiere")
Por: Label1.Caption = CadenaEntre(WebBrowser1.Document.Body.innertext, "Fichero", "¿Quiere")

Muchisimas Gracias erbuson.
  #4 (permalink)  
Antiguo 28/07/2013, 01:41
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años, 1 mes
Puntos: 53
Respuesta: Seleccionar parte de un texto (inicio y fin)

Se me ocurre pensar que tu variable ContEnido no estaba definida como String, por el tipo de error que te devuelve.

Me alegro de que te haya servido.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...

Etiquetas: cortar, inicio, parte
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 11:37.