Funciones no utilizadas, cuales y como saber?

Re: Funciones no utilizadas, cuales y como saber?

Postby cnavarro » Mon Feb 16, 2015 11:08 pm

Yo he desarrollado en relacion a este tema
Aun faltan algunas pruebas y que funcione con todos los ficheros abiertos
[img=http://s1.postimg.org/3m9ko01p7/Title114.jpg]

Image
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: 6504
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Funciones no utilizadas, cuales y como saber?

Postby Adolfo » Tue Feb 17, 2015 11:43 am

Fantastico Cristobal...

Una razon mas para probar el fivedit.

Saludos
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1650
User avatar
Adolfo
 
Posts: 846
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile

Re: Funciones no utilizadas, cuales y como saber?

Postby hmpaquito » Wed Feb 18, 2015 8:38 am

Sacar el nombre de las funciones del .map no es la mejor de las ideas, pudiendo sacarlas de la tabla de symbolos de (x)harbour.
¿ Alguien puede indicar como sacar los nombres de las funciones usadas ? A ser posible, que sea compatible harbour/ xharbour. Habria que ver que hacer con las funciones static... ademas de distinguir las que son, de momento las obviaria dado su "corto" alcance en el programa.
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Funciones no utilizadas, cuales y como saber?

Postby hmpaquito » Wed Feb 18, 2015 8:59 am

Esquema de aproximación:
Code: Select all  Expand view

CLASS TFunctionUse

   METHOD New()

   METHOD FunctionNameFromSymbol()     // Statics functions not included
   METHOD CreateFunctionList()                // Creates array function use

   METHOD SaveFunctionListToDbf()          // Save array function list to dbf


   DATA lSearchInPpo INIT .T                    // .F. for search in .prg
 
   DATA aFilesSearch                               // Search in files, or ...
   DATA aDirSearch                                 // Seach in directories

ENDCLASS
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Funciones no utilizadas, cuales y como saber?

Postby cnavarro » Wed Feb 18, 2015 9:36 am

hmpaquito wrote:Sacar el nombre de las funciones del .map no es la mejor de las ideas, pudiendo sacarlas de la tabla de symbolos de (x)harbour.
¿ Alguien puede indicar como sacar los nombres de las funciones usadas ? A ser posible, que sea compatible harbour/ xharbour. Habria que ver que hacer con las funciones static... ademas de distinguir las que son, de momento las obviaria dado su "corto" alcance en el programa.


"Largo" o "Corto" :D lo importante es saber si la hemos escrito y no la estamos usando, creo que es lo correcto, no?
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: 6504
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Funciones no utilizadas, cuales y como saber?

Postby hmpaquito » Wed Feb 18, 2015 10:12 am

sip :D
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Funciones no utilizadas, cuales y como saber?

Postby cnavarro » Wed Feb 18, 2015 10:15 am

El propio codigo de FivEdit de Antonio ya analiza el .PRG y extrae las funciones para mostrarlas en el ListBox derecho
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: 6504
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Funciones no utilizadas, cuales y como saber?

Postby hmpaquito » Wed Feb 18, 2015 10:39 am

Carlos,

Gracias por la apreciación, puede ser muy útil... ¿ como se comporta fivEdit ante estos cinco casos ?

Code: Select all  Expand view
#ifdef __NO_USADO__
   FUNCTION FunX(); RETURN NIL
#endif

/*
   FUNCTION FunX(); RETURN NIL
*/


// FUNCTION FunX(); RETURN NIL

* FUNCTION FunX(); RETURN NIL

#Define FUN_DEF FunX()
FUNCTION FUN_DEF; RETURN NIL

 

Saludos
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Funciones no utilizadas, cuales y como saber?

Postby cnavarro » Wed Feb 18, 2015 10:46 am

Hola, soy Cristobal, aunque tampoco me hubiese importado llamarme Carlos :D :D :D :)

Deberias probarlo, y ver si carga en la lista las funciones en los posibles casos que aportas
A partir de ahi, se podrian añadir nuevas opciones que no estuviesen contempladas
Yo creo que salvo la funcion dentro del #IF..., los demas casos están contemplados, pero ....
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: 6504
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Funciones no utilizadas, cuales y como saber?

Postby hmpaquito » Wed Feb 18, 2015 11:00 am

Cristóbal :D

Siento haber confundido tu nombre...

Me resulta curiosa una cosa... no es lo mismo el escenario de analizar un prg en frio (sólo fuente) que en caliente, estando el programa ejecutándose...
En caliente tenemos la tabla de symbolos que (x)harbour nos "ha hecho el favor" de construir para nosotros y que ya lleva todo el tema sintáctico solucionado. Amén de que sólo contiene la funciones que nuestro programa a realmente incorporado de los .prg que realmente se han enlazado.

Es verdad que (sólo en :cry: ) Harbour el preprocesador ha adquirido potencia inusitada que podría ser "usable" para labores "sintácticas" :D

Ya pregunté más arriba a los compis para ver si alguien ofrecía una forma (x)harbour de sacara las funciones (incluso static) de la tabla de symbolos.

Evidentemente si la rutina de fivEdit no contempla el primer escenario, veo más lógico usar la tabla de symbolos si esta da la información necesaria {funcion, [modulo], static si/no}

Saludos.

PD. Con todo lo dicho anteriormente, una funcion FunctionUse() deberia ser usada desde "dentro" del programa que se quiere analizar.
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Funciones no utilizadas, cuales y como saber?

Postby cnavarro » Wed Feb 18, 2015 11:16 am

Si, la potencia de Harbour es impresionante y solo "rasco" un poquito en su uso
El enfoque habitual de los desarrollos hacia las bases de datos nos hace dejar un poco de lado muchas herramientas que podemos utilizar o por lo menos conocer en profundidad
Tu comentario hacia el uso del preprocesador y su implicacion en el tema que nos ocupa, habria que tenerlo en cuenta tambien ("con tiempo y una caña........" :D )
Funciones como esta, a modo de curiosidad:
Code: Select all  Expand view


Function HCadFunction( nOp )
     Local nSymbols
     Local nFunctions
     Local n
     Local aFunc   := {}
     Local oWnd
     Local oBrw
     Local cCad    := ""
     DEFAULT nOp   := 0
     nSymbols      := __dynsCount()
     nFunctions    := 0

     for n := 1 to nSymbols
        if __dynsIsFun( n )
           AAdd( aFunc, __dynsGetName( n ) + "()" )
           cCad := __dynsGetName( n ) + " "
           nFunctions++
        else

        endif
     next

return IF( Empty( nOp ), cCad, aFunc )
 


nos quitarian mucho trabajo, y es solo un minimo ejemplo
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: 6504
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 154 guests