APORTE ( Busqueda en Archivos )

User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

APORTE ( Busqueda en Archivos )

Post by cuatecatl82 »

Saludos a todos:

Estaba buscando en el foro alguna rutina que me permitiera hacer busquebas de texto en archivos, para un editor que estoy realizando y encontre esto que me gusto mucho y que quise compartirselos:
http://forums.fivetechsupport.com/viewt ... lit=ts.exe


En base al mismo código de Paco García me di a la tarea de revisar y corregir algunos detalles que faltaban, probe que realizara búsquedas recursivas pero no funcionaba, le agregue iconos en la lista de coincidencias, funciona al 95% lo unico que falla es que al hacer busquedas al estilo "Todos los archivos (*.*)" muestra resultados correctos con texto que no tiene que ver con lo que se esta buscando.. Si alguien puede mejorarlo sería genial..

Image
Image

http://www.mediafire.com/download/danbo ... squeda.rar

Saludos y ojala les sirva..
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: APORTE ( Busqueda en Archivos )

Post by Antonio Linares »

Victor,

Muchas gracias

buen trabajo!
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: APORTE ( Busqueda en Archivos )

Post by cuatecatl82 »

Gracias Maestro:

Pero realmente el trabajo y el merito es de Paco Garcia, yo solo pulí algunas cosas.

http://www.mediafire.com/download/eawqn ... Search.rar

Nueva revision, corregi el fallo al hacer doble click en la linea de búsqueda, no mostraba los datos para ubicar el resultado.

En mi caso dentro de mi Editor al hacer doble click en la linea resaltada abre el archivo oEditor:Abrir(cFile) y lo posiciono al renglon indicado oEditor:GoTo(nLine)

Image

saludos...
Last edited by cuatecatl82 on Tue Apr 05, 2016 2:06 am, edited 1 time in total.
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: APORTE ( Busqueda en Archivos )

Post by cnavarro »

Victor, es posible que en estas lineas haya un pequeño bug?

Te pongo como debería ser, quizás

Code: Select all


   REDEFINE COMBOBOX oCbxRutas VAR cRutas           ID 202 ITEMS aCbxRutas OF oDlg
   REDEFINE COMBOBOX oCbxTipos VAR cTipos           ID 203 ITEMS aCbxTipos OF oDlg

 
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: APORTE ( Busqueda en Archivos )

Post by cnavarro »

También se podrían añadir más extensiones de archivos de búsqueda

Code: Select all


FUNCTION BuscaFile()

   local oDlg
   local oCur
   local oIco
   local oBtn0
   local oBtn1
   local oBtn2
   local cDir
   local oCbxFind
   local aCbxFind   := {}
   local oCbxTipos
   local aCbxTipos  := { "*.*", "*.prg", "*.ch", "*.h", "*.c", "*.cpp", "*.rc" }
   local oCbxRutas
   local aCbxRutas  := {}
   local oChkMay
   local lMay       := .F.
   local oChkRec
   local lRec       := .F.
   local cTipos     := aCbxTipos[ 1 ] //"*.*"
   local cRutas     := PadR( GetCurDir(), 255)
   local cFind      := PadR( Space( 60 ), 60 )
   local lValid     := .F.

   lCancel:= .F.

   DEFINE ICON     oIco      RESOURCE "00"
   DEFINE CURSOR   oCur      RESOURCE "MANO"
   DEFINE DIALOG   oDlg      RESOURCE "BUSCARA" TITLE "Buscar en Archivos..." ICON oIco
   REDEFINE COMBOBOX oCbxFind  VAR cFind   ID 201 ITEMS aCbxFind  OF oDlg
   REDEFINE COMBOBOX oCbxRutas VAR cRutas  ID 202 ITEMS aCbxRutas OF oDlg
   REDEFINE COMBOBOX oCbxTipos VAR cTipos  ID 203 ITEMS aCbxTipos OF oDlg
   REDEFINE BTNBMP   oBtn0     RESOURCE "BUSCFILE"  ID 400 OF oDlg ;
      ACTION ( Self, cDir := cGetDir("Seleccione Ruta: ", ALLTRIM( cRutas ) ),;
               IF( !EMPTY( cDir ),;
                  (IF(!oCbxRutas:FIND(cDir),oCbxRutas:Add( cDir ),),;
                  oCbxRutas:oGet:VarPut( cDir ), oCbxRutas:oGet:Refresh()),))

.../...


 
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: APORTE ( Busqueda en Archivos )

Post by karinha »

Victor,

Muchas gracias

buen trabajo!
João Santos - São Paulo - Brasil
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: APORTE ( Busqueda en Archivos )

Post by cuatecatl82 »

Saludos Cristobal:
Victor, es posible que en estas lineas haya un pequeño bug?

Te pongo como debería ser, quizás
Cierto, los Items estaban cambiados, gracias por la observacíon. :D :D :D
También se podrían añadir más extensiones de archivos de búsqueda
Asi es, de hecho por lo que estuve analizando el código, Paco Garcia tenia la idea de poder guardar en un archivo .ini todas las busquedas, las extenciones y los directorios algo como:

Code: Select all

[BUSQUEDAS]
1=redefine
2=dialog
3=RESOURCE
4=oApp:
5=

[FOLDER]
1=C:\PRUEBAS
2=Z:\FWH\Samples
3=Z:\Harbour\Source
4=D:\
5=F:\Fivewin

[TIPOS]
1=.prg
2=.c
3=.ppo
4=*.*
5=*.txt
Igual se podria guardar en una .dbf, pero ya es cuestion de gustos, por eso lo deje libre tal cual esta en el código original..


Lo que todavia no encuentro es como hacer que en una búsqueda de tipo *.* respete la busqueda :cry: :cry: :x :x , ya que al ser una apertura y búsqueda en todos los archivos en general muestra resultados como éste:

Image}

dificilmente podriamos encontrar texto legible que coincida con la palabra a buscar, ando en eso..




karinha:

Ojala les pueda ser de ayuda..


Saludos a todos y seguire revisando para mejorarlo..
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: APORTE ( Busqueda en Archivos )

Post by cnavarro »

Qué cadena buscabas en la imagen que has puesto?
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: APORTE ( Busqueda en Archivos )

Post by cuatecatl82 »

En el ejemplo anterior buscaba "redefine", pero sea lo que sea siempre hace lo mismo.

En este caso busque "copiar" en tipo de archivos "*.*"
Image

y aqui lo mismo.. la rutin hace un barrido de los archivos en los que se hace la busqueda y sin más sale este tipo de "basura"
Image

No doy porque.. :oops: :oops:
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Re: APORTE ( Busqueda en Archivos )

Post by JmGarcia »

Ideal para una idea que tenían en mente. Me parece que no la voy a desarrollar ya que este "aporte" casi que me lo soluciona.

Me explico:
Una de las cosas que mas me fastidia a la hora de compilar es el famoso error "external procedure", es decir cuando no hemos enlazado la pertinente librería que tiene la función que nos falta.

Pues bien:
Mi idea era (digo era ya que este aporte "casi" me vale) hacer una utilidad que buscara binariamente la cadena de texto dentro de todos los ficheros LIB o DLL deseados. Una vez encontrada la función en que fichero esta pues a compilar enlazando el fichero LIB apropiado.

Entonces pido una mejora/modificación si ello es posible.
Como se ve en el mensaje anterior, cuando un archivo no es texto (exe lib dll etc...) sale después de cada fichero toda una ristra de líneas que no aportan nada ya que son ilegibles.
La idea es poder poner un CHEKBOX mas que pregunte algo así "Búsqueda binaria", "Búsqueda en ficheros binarios" o "Sólo enumerar ficheros" y entonces el programa en la ventana de resultados que solo saque los ficheros con su path y nada mas. En la utilidad de referencia TS.exe ( text find ) utility replacement tiene ese chekbox como "Exibir apenas os nomes dos arquios" (Mostrar sólo los nombres de archivo), esta es la idea.
La ventana de resultados podría tener la opción de seleccionar el texto para poderlo pegar en otro sitio.

Gracias anticipadas.
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: APORTE ( Busqueda en Archivos )

Post by cuatecatl82 »

Nueva version, ahora es posible guardar las palabras, las direcciones y los criterios de búsqueda en un archivo .ini, se ha incorporado la opcion de cancelar la búsqueda mostrando los resultados que se hallan encontrado, tambien he optimizado el código.

http://www.mediafire.com/download/eawqn ... Search.rar

Aún no puedo corregir el fallo de mostrar texto ilegible, estoy todavia por resolverlo pues el depuraqdor me saca con un error, espero encontrar la solución.

Saludos JmGarcia:

De hecho este fallo de mostrar texto Ascii es un bug que no he podido corregir, pues al usar el depurador me vota con un error y no puedo analizar porque muestra texto "basura"

Image

El código es libre de modificaciones, lo puedes adaptar a tus necesidades..

Saludos.
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Re: APORTE ( Busqueda en Archivos )

Post by JmGarcia »

Gracias Victor.

Cuando tenga tiempo le echaré "un vistazo".

Me puedes decir con que compilador y versión de fwh lo compilas.
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: APORTE ( Busqueda en Archivos )

Post by cuatecatl82 »

debe compilar con cualquier version, todo el código fuente esta incluido, no require nada extra.

Yo tengo FWH 11.11, Harbour 3.2 y Bcc 582 sin problemas,

El código esta totalmente depurado, lo he revisado con W3, no hay variables sueltas que se cuelen en memoria. Compilalo y si te falta algo vemos como lo solucionamos.

Si le puedes dar una revisada a el bug, puede que en tu version de FW pueda verse desde el debug donde ocurre el fallo de la busqueda.

Saludos.
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
derpipu
Posts: 93
Joined: Tue Mar 28, 2006 4:09 pm
Location: Tequila, Jalisco Mexico
Contact:

Re: APORTE ( Busqueda en Archivos )

Post by derpipu »

Hola a todos, yo uso desde hace tiempo y por enseñanza de un viejo maestro en programacion, una herramienta del sistema y lo uso con un .bat donde el parametro es lo que buscamos,

Code: Select all

@echo off
del borrame.txt
find "%1" *.prg >> borrame.txt
notepad borrame.txt
@echo on
 
Espero les sirva de algo...

Saludos
ACC69
Posts: 619
Joined: Tue Dec 12, 2006 7:34 pm
Contact:

Re: APORTE ( Busqueda en Archivos )

Post by ACC69 »

cuatecatl82 wrote:debe compilar con cualquier version, todo el código fuente esta incluido, no require nada extra.

Yo tengo FWH 11.11, Harbour 3.2 y Bcc 582 sin problemas,

El código esta totalmente depurado, lo he revisado con W3, no hay variables sueltas que se cuelen en memoria. Compilalo y si te falta algo vemos como lo solucionamos.

Si le puedes dar una revisada a el bug, puede que en tu version de FW pueda verse desde el debug donde ocurre el fallo de la busqueda.

Saludos.

Gracias Ing. Victor Daniel, buen aporte el error podria estar en ese codigo ALLTRIM(STR(nFnd)) que desde principio no esta la variable nFnd, segun veo ,del porque te marca error.

Y por otro lado donde o como consigo el programa W3 que mencionar para depurar variables sueltas.

Saludos y buen dia.

Atte: Adrian C. C.
Post Reply