VIEW BUILD.LOG

You can share your experience with HMG. Share with some screenshots/project details so that others will also be benefited.

Moderator: Rathinagiri

User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil

VIEW BUILD.LOG

Post by Pablo César »

Es estraño Claudio, pero parece no entrar en esta condicion:

IF UPPER (RIGHT(arch, largo)) = UPPER (ext) (de la funcion SHOW_LINK)

Por lo que pude analisar, el problema se basea luego que encuentra el nombre del folder donde está cada proyecto. De aí en más veo que faltaria algo asi: aLogs:=Directory(arch+"\BUILD.LOG") para que se obtenda el folder cuando exista el archivo BUILD.LOG y pueda adicionar al Grid con sus propiedades.
Entiendo que está siendo verificado la existência de archivo com extension hbp, que seria para obtener el nombre de cada proyecto. En este caso, tambien seria necessário que hacer la búsqueda através de: aHbps:=Directory(arch+"\*.hbp"), no seria para que pudiera dar proseguimiento a la condición: IF UPPER (RIGHT(arch, largo)) = UPPER (ext) ?

Coloco el contenido de los archivos en Recent para apreciación.
Tela65.PNG
Tela65.PNG (97.7 KiB) Viewed 4781 times
Note que los nombres vienen correctamente del folder Recent.
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
User avatar
srvet_claudio
Posts: 2193
Joined: Thu Feb 25, 2010 8:43 pm
Location: Uruguay
Contact:

Re: VIEW BUILD.LOG

Post by srvet_claudio »

Pablo César wrote:Es estraño Claudio, pero parece no entrar en esta condicion:

IF UPPER (RIGHT(arch, largo)) = UPPER (ext) (de la funcion SHOW_LINK)

Por lo que pude analisar, el problema se basea luego que encuentra el nombre del folder donde está cada proyecto. De aí en más veo que faltaria algo asi: aLogs:=Directory(arch,"BUILD.LOG") para que se obtenda el folder cuando exista el archivo BUILD.LOG y pueda adicionar al Grid con sus propiedades.
Entiendo que está siendo verificado la existência de archivo com extension hbp, que seria para obtener el nombre de cada proyecto. En este caso, tambien seria necessário que hacer la búsqueda através de: aHbps:=Directory(arch,"*.hbp"), no seria para que pudiera dar proseguimiento a la condición: IF UPPER (RIGHT(arch, largo)) = UPPER (ext) (de la funcion SHOW_LINK) ?
Hola Pablo César.
La verdad es que es todo muy extraño, el ultimo ejecutable que lo subí me funciona perfectamente con Windows XP y W7.
La busqueda de los archivos la hago con funciones en C:

Code: Select all

         DO WHILE  FINDNEXTFILE () = .T.            
         
            DO EVENTS
            
            arch := GET_FILE_LINK (GET_FOLDER_LINK() +"\"+ GET_FIND_NAME (),1)
            ..............
Una cosa extraña que he notado en las ultimas versiones de HMG es que cuando empleas las directiva incremental en la compilación tanto de proyectos como de Libs a veces da problema y a veces no (fijate lo que postee en HMG.3.0.46 con las lib HFCL).
Cuando da problema el compilador no detecta los cambios en los archivos fuentes, parecería que empleara los archivos objetos viejos del incremental.
Si compilas el View_Build_log no utilices el IDE, borra el directorio oculto .hbmk y utiliza el build.bat.

Los cambios del View_Build_log2.rar no los pude compilar con el IDE de ninguna versión de HMG aunque resetee el historial del incremental data, además la compilación daba resultados raros con las funciones Directory() y File(), por ejemplo testeaba:
msginfo (If (File(path)== .T., "t","f")) y arrojaba .f., enseguida ponía
If File(path)== .T.
........
endif
y arrojaba .T. porque ignoraba el IF y pasaba igual.

Cuando me aparecen cosas extrañas lo que por ahora siempre me funciona es borrar el .hbmk que crea el IDE (compila con incremental activado) y usar el build.bat de la linea de comando.
Pablo has notado algo parecido con el IDE y con la compilación incremental?
Un abrazo,
Claudio.
Attachments
VIEW_BUILD_LOG_win7.JPG
VIEW_BUILD_LOG_win7.JPG (77.94 KiB) Viewed 4778 times
Best regards.
Dr. Claudio Soto
(from Uruguay)
http://srvet.blogspot.com
User avatar
srvet_claudio
Posts: 2193
Joined: Thu Feb 25, 2010 8:43 pm
Location: Uruguay
Contact:

Re: VIEW BUILD.LOG

Post by srvet_claudio »

Esto es en Windows XP.
Attachments
VIEW_BUILD_LOG_XP.JPG
VIEW_BUILD_LOG_XP.JPG (91.06 KiB) Viewed 4761 times
Best regards.
Dr. Claudio Soto
(from Uruguay)
http://srvet.blogspot.com
User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil

VIEW BUILD.LOG

Post by Pablo César »

Cuando bajé VIEW_BUILD_LOG y VIEW_BUILD_LOG2, en las dos veces, ejecuté sin compilar y sin resultado en el grid.

Ahora compilé con el BUILD.BAT y me retornó 3 warnings. Que me parece que es la raiz del problema:
Harbour 3.2.0dev (Rev. 18443)
Copyright (c) 1999-2012, http://harbour-project.org/view_build_log.prg: In function 'HB_FUN_FINDFIRSTFILE':
view_build_log.prg:376:21: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
view_build_log.prg: In function 'HB_FUN_GET_FILE_LINK':
view_build_log.prg:425:13: warning: assignment discards 'const' qualifier from pointer target type [enabled by default]
view_build_log.prg: In function 'HB_FUN_CHANGE_BUILD_LOG_INI':
view_build_log.prg:537:10: warning: assignment discards 'const' qualifier from pointer target type [enabled by default]
En esas líneas de los warnings, se refieren a la constante ARCHIVO, no sé de si se puede re-atribuir valor a una constante de forma normal. Si está dando warnings, es posible que pueden dar problemas.

Una cosa que me dejó intrigado a preguntarte. Una vez que tienes el nombre de la carpeta, donde puedes encontrar vários archivos hbp. Por ejemplo, tengo una carpeta de projeto con vários hbp (demo1.hbp, demo2.hbp, etc.). Entonces el retorno deberia ser archivo más reciente, lo que parece lógico porque en una carpeta solo puede haber un solo build.log. Confirmas esto ?

No sé si viene al caso, pero talvez sirva para evitar reprocesamiento, creo que el retorno de GET_FILE_LINK, deberia ser en array yá conteniendo las propriedades necessárias sin tener que ser executada nuevamente para cada propriedad.

Adicioné como te habia dicho Directory, IsDIrectory, Hay_Log y todo funcionó aparentemente bien. Espero que te guste mis cambios y si acceptas una opinion:

Yo dejaria el ABA "INFO" del TAB em la ultima opsición. Y tambien haria que el SHOW_LINK() lo hiciera yá automático de entrada y el botón "Recent Project" lo cambiase para "Refresh Projects" ou simplesmente "Refresh".
Pablo has notado algo parecido con el IDE y con la compilación incremental?
Si, muy pocas veces hay que resetarlo, pero raro. Pero generalmente no tengo problemas con eso.

<Archivo de download removido. Archivo actualizado en las proximas disponibilidades>
Last edited by Pablo César on Fri Nov 09, 2012 1:12 am, edited 1 time in total.
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
User avatar
srvet_claudio
Posts: 2193
Joined: Thu Feb 25, 2010 8:43 pm
Location: Uruguay
Contact:

Re: VIEW BUILD.LOG

Post by srvet_claudio »

Hola Pablo.
Pablo César wrote:Ahora compilé con el BUILD.BAT y me retornó 3 warnings. Que me parece que es la raiz del problema:
Quote:
Harbour 3.2.0dev (Rev. 18443)
Copyright (c) 1999-2012, http://harbour-project.org/view_build_log.prg: In function 'HB_FUN_FINDFIRSTFILE':
view_build_log.prg:376:21: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
view_build_log.prg: In function 'HB_FUN_GET_FILE_LINK':
view_build_log.prg:425:13: warning: assignment discards 'const' qualifier from pointer target type [enabled by default]
view_build_log.prg: In function 'HB_FUN_CHANGE_BUILD_LOG_INI':
view_build_log.prg:537:10: warning: assignment discards 'const' qualifier from pointer target type [enabled by default]


En esas líneas de los warnings, se refieren a la constante ARCHIVO, no sé de si se puede re-atribuir valor a una constante de forma normal. Si está dando warnings, es posible que pueden dar problemas.
Esos mensajes fueron corregidos en el segundo View_Build_2.rar, en este caso son mensajes sin importancia el compilador hace en forma automática la corrección de tipo. Esto se produce porque hb_parc() retorna (const char *) y se lo estoy asignado a un puntero char, la corrección de tipo es muy fácil.
char *Nom1 = hb_parc (1); // esto produce un mensaje de advertencia.
char *Nom1 = (char*) hb_parc (1); // esta es la forma correcta.
Pablo César wrote:Una cosa que me dejó intrigado a preguntarte. Una vez que tienes el nombre de la carpeta, donde puedes encontrar vários archivos hbp. Por ejemplo, tengo una carpeta de projeto con vários hbp (demo1.hbp, demo2.hbp, etc.). Entonces el retorno deberia ser archivo más reciente, lo que parece lógico porque en una carpeta solo puede haber un solo build.log. Confirmas esto ?

Si, es correcto.
Pablo César wrote:Yo dejaria el ABA "INFO" del TAB em la ultima opsición. Y tambien haria que el SHOW_LINK() lo hiciera yá automático de entrada y el botón "Recent Project" lo cambiase para "Refresh Projects" ou simplesmente "Refresh".
Muy buena idea.
Pablo César wrote:Adicioné como te habia dicho Directory, IsDIrectory, Hay_Log y todo funcionó aparentemente bien. Espero que te guste mis cambios
Definitivamente me doy por vencido, la imagen de error abajo me dio tu View_Build_Log.Exe y cuando lo compile tambien me dio el mismo error.
Si te interesa View_Build_Log, te lo dono hace los cambios que consideres necesario y agregale tu nombre al copyright.
Un abrazo,
Claudio.
Attachments
VIEW_BUILD_LOG_Pablo.JPG
VIEW_BUILD_LOG_Pablo.JPG (61.16 KiB) Viewed 4741 times
Best regards.
Dr. Claudio Soto
(from Uruguay)
http://srvet.blogspot.com
User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil

Re: VIEW BUILD.LOG

Post by Pablo César »

srvet_claudio wrote:Definitivamente me doy por vencido, la imagen de error abajo me dio tu View_Build_Log.Exe y cuando lo compile tambien me dio el mismo error.
Si te interesa View_Build_Log, te lo dono hace los cambios que consideres necesario y agregale tu nombre al copyright.
Quedo honrado y agradecido por tu enorme generosidad, pero no puedo aceptarlo, la creación es toda tuya amigo ! Cuanto a las implementaciones que te parecieron buenas, las haré ahora a la noche (ahora tengo que salir), pero sin recargo alguno. Me basta tu gran participación aqui y siempre seré agradecido por eso. por eso amigo, accepte mis colaboraciones siempre y cuando sean de su agrado.

Ahhh me olvidaba. Ese error es porque el primero arch es casualmente un folder alli en tu máquina (o por lo menos era). Bastaria adicionar las siguiente lineas despúes del primer aDir:=Directory(arch+"\*."+ext) (linea 258):

Code: Select all

If Len(aDir)>0
   arch := ASORT(aDir,,, { |x, y| DtoS(x[3])+x[4] > DtoS(y[3])+y[4] })[1][1]
Endif
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
gvaronas
Posts: 109
Joined: Wed Aug 06, 2008 5:21 pm

Re: VIEW BUILD.LOG

Post by gvaronas »

Hola Pablo Cesar, los iconos de las carpetas que estas mostrando en la figura, en realidad corresponde a archivos. Esto es ocasionado por un virus. Este Virus crea accesos directos con los nombres de las carpetas y las verdaderas carpetas las oculta. Para recuperar tus carpetas puedes utilizar el comando attrib desde una ventana DOS.

Salu2,
GVS
Pablo César wrote:Es estraño Claudio, pero parece no entrar en esta condicion:

IF UPPER (RIGHT(arch, largo)) = UPPER (ext) (de la funcion SHOW_LINK)

Por lo que pude analisar, el problema se basea luego que encuentra el nombre del folder donde está cada proyecto. De aí en más veo que faltaria algo asi: aLogs:=Directory(arch+"\BUILD.LOG") para que se obtenda el folder cuando exista el archivo BUILD.LOG y pueda adicionar al Grid con sus propiedades.
Entiendo que está siendo verificado la existência de archivo com extension hbp, que seria para obtener el nombre de cada proyecto. En este caso, tambien seria necessário que hacer la búsqueda através de: aHbps:=Directory(arch+"\*.hbp"), no seria para que pudiera dar proseguimiento a la condición: IF UPPER (RIGHT(arch, largo)) = UPPER (ext) ?

Coloco el contenido de los archivos en Recent para apreciación.
Tela65.PNG
Note que los nombres vienen correctamente del folder Recent.
User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil

Re: VIEW BUILD.LOG

Post by Pablo César »

gvaronas wrote:los iconos de las carpetas que estas mostrando en la figura, en realidad corresponde a archivos. Esto es ocasionado por un virus. Este Virus crea accesos directos con los nombres de las carpetas y las verdaderas carpetas las oculta.
Gracias por tu preocupación, pero no me parece que haya algo de errado en esa lista. Porque están todos con extension .lnk. Poderias mostrarme como tienes en tu compu ?
Para recuperar tus carpetas puedes utilizar el comando attrib desde una ventana DOS.
No tiene atributo alguno en los archivos de esa carpeta. No creo que sea virus, el programa ya fué solucionado. Tambien si fuera virus no iria servir dar attrib porque los archivos son creados a medida que son abiertos.

Podriame decir cual el nombre del vírus, asi puedo investigar mejor ?
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
User avatar
srvet_claudio
Posts: 2193
Joined: Thu Feb 25, 2010 8:43 pm
Location: Uruguay
Contact:

Re: VIEW BUILD.LOG

Post by srvet_claudio »

Pablo César wrote:Quedo honrado y agradecido por tu enorme generosidad, pero no puedo aceptarlo, la creación es toda tuya amigo ! Cuanto a las implementaciones que te parecieron buenas, las haré ahora a la noche (ahora tengo que salir), pero sin recargo alguno. Me basta tu gran participación aqui y siempre seré agradecido por eso. por eso amigo, accepte mis colaboraciones siempre y cuando sean de su agrado.
Eres muy amable Pablo.
Pablo César wrote: Ese error es porque el primero arch es casualmente un folder alli en tu máquina (o por lo menos era). Bastaria adicionar las siguiente lineas despúes del primer aDir:=Directory(arch+"\*."+ext) (linea 258):
Code:
If Len(aDir)>0
   arch := ASORT(aDir,,, { |x, y| DtoS(x[3])+x[4] > DtoS(y[3])+y[4] })[1][1]
Endif

Funciono perfecto con esto.

arch := ASORT(aDir,,, { |x, y| DtoS(x[3])+x[4] > DtoS(y[3])+y[4] })[1][1]
Por cierto, para que sirven los [1][1] al final ?

Un abrazo,
Claudio.
Best regards.
Dr. Claudio Soto
(from Uruguay)
http://srvet.blogspot.com
User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil

VIEW BUILD.LOG

Post by Pablo César »

arch := ASORT(aDir,,, { |x, y| DtoS(x[3])+x[4] > DtoS(y[3])+y[4] })[1][1]
Por cierto, para que sirven los [1][1] al final ?
Seria la posicion de la matriz. Seria lo mismo que aDir[1,1] (en este caso el primer archivo que fué ordenado por fecha+hora)

Hice las modificaciones anteriormente citadas y algo más. Cambié de posicion de las ABAs, carga el Grid en la entrada, Botónes cambiaron de caption, botones estarán disponibles cuando convenientes, indexacion de doble click ordenando de menor a mayor y vice-versa, las fechas/horas del Recent son pertenecientes al archico Buil.Log de cada iten (porque mostrava la fecha/hora del folder cuando fué creado), dimensioné el tamaño de las columnas, está alineado la columna 4, quize cambiar el color de los TEXTBOXes pero no conseguí... bueno espero que agrade !

Ahh me olvidaba decir que cambié el archivo ico, pero si no agrada puede volver como estaba.

<Please note: attached file is updated in last message of this post.>
Last edited by Pablo César on Thu Nov 15, 2012 2:23 am, edited 1 time in total.
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
Post Reply