FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Funciones no utilizadas, cuales y como saber?
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Funciones no utilizadas, cuales y como saber?
Posted: 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]

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
Posts: 883
Joined: Tue Oct 11, 2005 11:57 AM
Re: Funciones no utilizadas, cuales y como saber?
Posted: 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, 2 * 1 TB NVME M.2, GTX 1650
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: Funciones no utilizadas, cuales y como saber?
Posted: Wed Feb 18, 2015 08: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.

Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: Funciones no utilizadas, cuales y como saber?
Posted: Wed Feb 18, 2015 08:59 AM
Esquema de aproximaci贸n:
Code (fw): Select all Collapse
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
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Funciones no utilizadas, cuales y como saber?
Posted: Wed Feb 18, 2015 09: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" :-) 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
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: Funciones no utilizadas, cuales y como saber?
Posted: Wed Feb 18, 2015 10:12 AM

sip :D

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Funciones no utilizadas, cuales y como saber?
Posted: 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
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: Funciones no utilizadas, cuales y como saber?
Posted: 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 (fw): Select all Collapse
#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
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Funciones no utilizadas, cuales y como saber?
Posted: 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
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: Funciones no utilizadas, cuales y como saber?
Posted: 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.

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Funciones no utilizadas, cuales y como saber?
Posted: 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........" :-) )
Funciones como esta, a modo de curiosidad:
Code (fw): Select all Collapse
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

Continue the discussion