Autor
|
Tema: [SRC] + [Función] Text_Between_Words [by *PsYkE1*] (Leído 6,677 veces)
|
seba123neo
|
claro, lo unico que yo nunca la usaria para buscar 2 palabras solas como mostro cobein , que se pueden repetir 500 veces en un texto, la usaria para buscar 2 cadenas bien largas e irrepetibles en el texto, como hice en el ejemplo de la web.
|
|
|
En línea
|
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
claro, lo unico que yo nunca la usaria para buscar 2 palabras solas como mostro cobein , que se pueden repetir 500 veces en un texto, la usaria para buscar 2 cadenas bien largas e irrepetibles en el texto, como hice en el ejemplo de la web. Si la verdad es que yo tambien cai en eso, pero no le di mucha importancia puesto que Si se repetia la palabra cogia dos como referencia... Salu2!
|
|
|
En línea
|
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
Os aviso para que le echeis un vistazo al 1er post de nuevo, he simplificado y corregido la funcion con lo que djio Cobein, ahora funciona perfectamente, espero vuestra opinion... Salu2! EDITO:Corregidme si me equivoco, pero creo que seguimos teniendo un error... Imaginar que tenemos esto y queremos desde el 1er "el" hasta el que va antes de "balcon": el hombre de negro el que estaba en el balcon Segun lo que hemos hecho, nos daria esto: hombre de negro cuando en realidad queremos esto: hombre de negro el que estaba en ¿Os dais cuenta? Mas adelante publico solucion a esto... Salu2!
|
|
« Última modificación: 5 Junio 2010, 11:06 am por *PsYkE1* »
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
no tiene caso ocupar nuevamente instr() si ya lo tienes en la variable pos2 y lo de mid() Option Explicit Public Function Text_Between_Words(Text As String, String1 As String, String2 As String) As String Dim Pos1 As Integer, Pos2 As Integer, Start As Integer Pos1 = InStr(Text, String1) If Pos1 <> 0 Then Start = Pos1 + Len(String1): Pos2 = InStr(Start, Text, String2) Else Exit Function If Pos2 <> 0 Then Text_Between_Words = Mid$(Text, Start, Pos2 - Start) Else Exit Function End Function
Dulce Infierno Lunar!¡.
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
Jejejeje, gracias, se me escapo... Tampoco seria necesario el segundo Exit Function... Salu2!
|
|
|
En línea
|
|
|
|
cobein
|
claro, lo unico que yo nunca la usaria para buscar 2 palabras solas como mostro cobein , que se pueden repetir 500 veces en un texto, la usaria para buscar 2 cadenas bien largas e irrepetibles en el texto, como hice en el ejemplo de la web.
Entiendo lo que decis pero la funcion plantea una palabra y la que le sigue y el codigo NO hace eso por eso la modificacion.
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
Jejejeje, gracias, se me escapo... Tampoco seria necesario el segundo Exit Function... Salu2! Public Function Text_Between_Words(Text As String, String1 As String, String2 As String) As String Dim Pos1 As Integer, Pos2 As Integer, Start As Integer If Len(Text) > 0 Then Pos1 = InStr(1, Text, String1) If Pos1 > 0 Then Start = Pos1 + Len(String1): Pos2 = InStr(Start, Text, String2) If Pos2 > 0 Then Text_Between_Words = Mid$(Text, Start, Pos2 - Start) End If End If End Function
Dulce Infierno Lunar!¡.
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
Ok, ya lo he corregido... ¿Que opinais de esto que dije? Corregidme si me equivoco, pero creo que seguimos teniendo un error... Imaginar que tenemos esto y queremos desde el 1er "el" hasta el que va antes de "balcon": el hombre de negro el que estaba en el balcon Segun lo que hemos hecho, nos daria esto: hombre de negro cuando en realidad queremos esto: hombre de negro el que estaba en ¿Os dais cuenta? Mas adelante publico solucion a esto... Salu2!
|
|
|
En línea
|
|
|
|
|
|