** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - parte de una string por palabras
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoparte de una string por palabras

 Responder Responder
Autor
Mensaje
cpampasPT Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 20/Marzo/2010
Localización: Portugal
Estado: Sin conexión
Puntos: 414
Enlace directo a este mensaje Tema: parte de una string por palabras
    Enviado: 06/Diciembre/2018 a las 21:46
Hola colegas,

A ver si me hechais una mano, que no consigo una solucion para esto :

mi variable obCommentText, recoje la totalidad del texto de un documento de word que tiene una serie de marcadores

la variable aPos (integer), recoje la posicion de un determinado marcador
la variable partStr, se posiciona en el texto de un determinado marcador, e recoje  los 30 caracteres anteriores, y los 30 caracteres siguientes

partStr =  Trim(Mid(obCommentText, aPos - 30, 60)


Lo que quiero es , en vez de los 30 anteriores y los 30 siguientes, es que partStr, recojiera, las 5 palabras anteriores ( desde que tengan mas de 2 caracteres cada una), y las 5 siguientes con la misma condicion de numero de caracteres >2

Alguien tiene una idea ?
Saludos
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 4922
Enlace directo a este mensaje Enviado: 06/Diciembre/2018 a las 23:29
Hola!

Yo he entendido que quieres extraer las primeras 5 letras empezando por el tercer carácter y los últimos 5 caracteres acabando en las ultimas 2 letras.

Si es eso es correct prueba esto:

= Mid(Left([Texto0],7),3,5) & Mid(Right([Texto0],7),1,5)
Un Saludo.
Arriba
emiliove Ver desplegable
Moderador
Moderador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 4767
Enlace directo a este mensaje Enviado: 07/Diciembre/2018 a las 00:07
Pues, la verdad dice las primeras 5 Palabras.

Y para obtener las palabras lo puede hacer con un Split algo como:

Dim LString As String
Dim LArray() As String
LString = "Esta es una prueba para extraer palabras de un parafo"
LArray = Split(LString)

MsgBox LArray(0) & " " & LArray(1) & " " & LArray(2) & " " & LArray(3)

Lo que nos mostraría: Esta es una prueba
Claro que tienes que trabajar la idea para en caso que tenga palabras de dos caracteres o de una letra que vaya agregando mas palabra.

Saludos.

Arriba
cpampasPT Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 20/Marzo/2010
Localización: Portugal
Estado: Sin conexión
Puntos: 414
Enlace directo a este mensaje Enviado: 07/Diciembre/2018 a las 08:03
hola,
Si lo que pretendo es conseguir las palabras, pero en el sentido inverso o sea empezando por
"parafo", "un", "de", "palabras",   o sea las 5 palabras anteriores al marcador que esta en una parte del texto

a lo mejor hay que hacer un loop del tipo

For x = UBound(LArray) To LBound(LArray) Step -1

Gracias Emiliove, me pusiste en camino,os lo cuento segun me vaya
Saludos
Arriba
cpampasPT Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 20/Marzo/2010
Localización: Portugal
Estado: Sin conexión
Puntos: 414
Enlace directo a este mensaje Enviado: 08/Diciembre/2018 a las 12:31
hola
asi  funciono :

Dim LString As String
Dim LArray() As String

aPos = 64
LString = "Esta es una prueba para extraer palabras de un parafo de texto y @ quiero extraer 5 palabras anteriores y 5 posteriores al marcador"
LString = Left(LString, aPos)
LArray = Split(LString)
   For x = UBound(LArray) To LBound(LArray) Step -1
       If Len(LArray(x)) > 2 Then cuenta = cuenta + 1
       str1 = LArray(x) & " " & str1
       If cuenta > 5 Then Exit For
   Next
MsgBox ("string final  " & str1)

---------
Gracias por la ayuda
Podeis cerrar el hilo
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable