APORTE ( Busqueda en Archivos )

APORTE ( Busqueda en Archivos )

Postby cuatecatl82 » Thu Mar 31, 2016 8:57 pm

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/viewtopic.php?f=3&t=31149&hilit=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/danbo17b2a82fvg/Busqueda.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
cuatecatl82
 
Posts: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México

Re: APORTE ( Busqueda en Archivos )

Postby Antonio Linares » Thu Mar 31, 2016 9:14 pm

Victor,

Muchas gracias

buen trabajo!
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41315
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: APORTE ( Busqueda en Archivos )

Postby cuatecatl82 » Fri Apr 01, 2016 1:47 am

Gracias Maestro:

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

http://www.mediafire.com/download/eawqnqph1bjxhu8/FileSearch.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
cuatecatl82
 
Posts: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México

Re: APORTE ( Busqueda en Archivos )

Postby cnavarro » Fri Apr 01, 2016 11:26 am

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

Te pongo como debería ser, quizás

Code: Select all  Expand view


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

 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: APORTE ( Busqueda en Archivos )

Postby cnavarro » Fri Apr 01, 2016 12:47 pm

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

Code: Select all  Expand view


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()),))

.../...


 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: APORTE ( Busqueda en Archivos )

Postby karinha » Fri Apr 01, 2016 1:21 pm

Victor,

Muchas gracias

buen trabajo!
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7215
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: APORTE ( Busqueda en Archivos )

Postby cuatecatl82 » Fri Apr 01, 2016 3:48 pm

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  Expand view
[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
cuatecatl82
 
Posts: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México

Re: APORTE ( Busqueda en Archivos )

Postby cnavarro » Fri Apr 01, 2016 3:59 pm

Qué cadena buscabas en la imagen que has puesto?
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: APORTE ( Busqueda en Archivos )

Postby cuatecatl82 » Fri Apr 01, 2016 8:24 pm

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
cuatecatl82
 
Posts: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México

Re: APORTE ( Busqueda en Archivos )

Postby JmGarcia » Mon Apr 04, 2016 10:55 pm

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
JmGarcia
 
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Re: APORTE ( Busqueda en Archivos )

Postby cuatecatl82 » Tue Apr 05, 2016 2:05 am

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/eawqnqph1bjxhu8/FileSearch.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
cuatecatl82
 
Posts: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México

Re: APORTE ( Busqueda en Archivos )

Postby JmGarcia » Tue Apr 05, 2016 8:30 am

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
JmGarcia
 
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Re: APORTE ( Busqueda en Archivos )

Postby cuatecatl82 » Tue Apr 05, 2016 2:35 pm

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
User avatar
cuatecatl82
 
Posts: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México

Re: APORTE ( Busqueda en Archivos )

Postby derpipu » Tue Apr 05, 2016 7:48 pm

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  Expand view

@echo off
del borrame.txt
find "%1" *.prg >> borrame.txt
notepad borrame.txt
@echo on
 


Espero les sirva de algo...

Saludos
derpipu
 
Posts: 94
Joined: Tue Mar 28, 2006 4:09 pm
Location: Tequila, Jalisco Mexico

Re: APORTE ( Busqueda en Archivos )

Postby ACC69 » Thu Apr 07, 2016 5:41 pm

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.
ACC69
 
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 72 guests