FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour buscar la coincidencia en toda la cadena
Posts: 400
Joined: Fri May 11, 2007 08:20 PM
buscar la coincidencia en toda la cadena
Posted: Tue Jan 24, 2017 12:30 AM

Gente
el dbseek busca a partir del comienzo la coincidencia, se puede buscar la coincidencia dentro de toda la cadena a buscar?
similar a cuando se busca por nombre en los contactos del celular

Gracias

fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
Posts: 226
Joined: Sun May 13, 2012 07:52 AM
Re: buscar la coincidencia en toda la cadena
Posted: Tue Jan 24, 2017 12:57 AM

artu01
con xbrowse yo uso asi:
oLbx:lIncrFilter := .t.
oLbx:lSeekWild := .t.

@ 1, 1 SAY oLbx:oSeek PROMPT oLbx:cSeek PICTURE "@!" UPDATE OF oDlg PIXEL COLOR CLR_BLACK FONT oFont SIZE 220, 22 BORDER

FWH2008 | xHarbour | BCC74 | SQLRDD
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: buscar la coincidencia en toda la cadena
Posted: Tue Jan 24, 2017 05:56 AM

Creo esto te serviria, saludos... :shock:

AT()
Devuelve la posici贸n de una subcadena dentro de una cadena de caracteres


Sintaxis

 AT(<cB煤squeda>, <cDestino>) --> nPosici贸n

Argumentos

 <cB煤squeda> es la subcadena de caracteres que se va a buscar.

 <cDestino> es la cadena de caracteres en la que se realiza la
 b煤squeda.

Devuelve

 AT() devuelve la posici贸n de la primera aparici贸n de <cB煤squeda> dentro
 de <cDestino>, como valor num茅rico entero. Si no se encuentra
 <cB煤squeda>, AT() devuelve cero.

Descripci贸n

 AT() es una funci贸n de tratamiento de caracteres que se utiliza para
 determinar la posici贸n de la primera aparici贸n de una subcadena dentro
 de otra cadena. Si s贸lo necesita saber si una subcadena se encuentra
 dentro de otra, utilice el operador $. Para encontrar la 煤ltima
 aparici贸n de una cadena dentro de otra, utilice RAT().

Ejemplos

 C Los ejemplos siguientes muestran la utilizaci贸n normal de AT():

    ? AT("a", "abcde")           // Resultado: 1
    ? AT("bcd", "abcde")         // Resultado: 2
    ? AT("a", "bcde")            // Resultado: 0
Dios no est谩 muerto...



Gracias a mi Dios ante todo!
Posts: 400
Joined: Fri May 11, 2007 08:20 PM
Re: buscar la coincidencia en toda la cadena
Posted: Tue Jan 24, 2017 06:18 AM

Gracias Jose Luis quizas no me haya dejado entender pero quiero que en un xbrowse conforme vaya digitando en una busqueda se vayan filtrando los registros segun mi cadena a buscar pero que no solamente la coincidiencia sea desde el principio sino que este sea en cualquier parte sobre el campo.
Creo que Sistem me ha dado una luz, probare y comento

fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Re: buscar la coincidencia en toda la cadena
Posted: Tue Jan 24, 2017 03:00 PM

Hola
Si la variable donde se encuentra lo que buscas se llama, por ejemplo, cSearch, y el campo donde buscas es Descrip, entonces usa el siguiente filtro

SET FILTER TO cSearch$Field->Descrip

El operador $ : a$b retorna .T. si a est谩 dentro de b, en cualquier lugar. Tambien se puede hacer con AT(), pero $ hace lo que buscas.

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"
Posts: 400
Joined: Fri May 11, 2007 08:20 PM
Re: buscar la coincidencia en toda la cadena
Posted: Tue Jan 24, 2017 10:29 PM
Sistem wrote:artu01
con xbrowse yo uso asi:
oLbx:lIncrFilter := .t.
oLbx:lSeekWild := .t.

@ 1, 1 SAY oLbx:oSeek PROMPT oLbx:cSeek PICTURE "@!" UPDATE OF oDlg PIXEL COLOR CLR_BLACK FONT oFont SIZE 220, 22 BORDER

Sistem
Funciono Perfecto! .... eso si tuve que ponerle AUTOSORT al xbrowse que dicho sea de paso es una maravilla te ahorra
mucho codigo de programaci贸n

Mil gracias a todos
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
Posts: 400
Joined: Fri May 11, 2007 08:20 PM
Re: buscar la coincidencia en toda la cadena
Posted: Wed Jan 25, 2017 12:04 AM
Sistem wrote:artu01
con xbrowse yo uso asi:
oLbx:lIncrFilter := .t.
oLbx:lSeekWild := .t.

@ 1, 1 SAY oLbx:oSeek PROMPT oLbx:cSeek PICTURE "@!" UPDATE OF oDlg PIXEL COLOR CLR_BLACK FONT oFont SIZE 220, 22 BORDER

Ahora tengo otro problema como es que le quito el filtro al xbrowse, puse lo de abajo pero no resulta no me aparecen todos los registros.
Code (fw): Select all Collapse
oBrw:lIncrFilter := .f.
oBrw:lSeekWild := .f.
oBrw:cFilterFld := ""
TABLA->(ORDSCOPE(TOPSCOPE,NIL))
TABLA->(ORDSCOPE(BOTTOMSCOPE,NIL))
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
Posts: 400
Joined: Fri May 11, 2007 08:20 PM
Re: buscar la coincidencia en toda la cadena
Posted: Wed Jan 25, 2017 12:24 AM
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql

Continue the discussion