Funciones no utilizadas, cuales y como saber?

User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Funciones no utilizadas, cuales y como saber?

Post by cnavarro »

Yo he desarrollado en relacion a este tema
Aun faltan algunas pruebas y que funcione con todos los ficheros abiertos
Image

Image
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
Adolfo
Posts: 815
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile
Contact:

Re: Funciones no utilizadas, cuales y como saber?

Post by Adolfo »

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
----------
Lenovo Legion Y520, 16GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1050
hmpaquito
Posts: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: Funciones no utilizadas, cuales y como saber?

Post by hmpaquito »

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: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: Funciones no utilizadas, cuales y como saber?

Post by hmpaquito »

Esquema de aproximación:

Code: Select all

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
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Funciones no utilizadas, cuales y como saber?

Post by cnavarro »

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?
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.
hmpaquito
Posts: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: Funciones no utilizadas, cuales y como saber?

Post by hmpaquito »

sip :D
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Funciones no utilizadas, cuales y como saber?

Post by cnavarro »

El propio codigo de FivEdit de Antonio ya analiza el .PRG y extrae las funciones para mostrarlas en el ListBox derecho
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.
hmpaquito
Posts: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: Funciones no utilizadas, cuales y como saber?

Post by hmpaquito »

Carlos,

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

Code: Select all

#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
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Funciones no utilizadas, cuales y como saber?

Post by cnavarro »

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 ....
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.
hmpaquito
Posts: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: Funciones no utilizadas, cuales y como saber?

Post by hmpaquito »

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.
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Funciones no utilizadas, cuales y como saber?

Post by cnavarro »

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


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
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.
Post Reply