Harbour y uso de scripts

Harbour y uso de scripts

Postby Compuin » Tue Jul 09, 2019 2:10 pm

Saludos,

Estoy pensando implementar el uso de scripts en mi aplicacion pero tengo las siguientes dudas:

1.- Los scripts deben ser compilados a .hrb o pueden ser solo .prg ?
2.- Si quiero proteger estos .prg como puedo encriptarlos ? Algun ejemplo ?
3.- A nivel de scripts, la sintaxis es la misma que un .prg tradicional, es decir, sin restriccion del tipo de variable (local, estatica, etc), uso de funciones o procedures, etc ?
4.- Existe documentacion donde pueda ver la sintaxis de Harbour para el manejo de scripts (Ejecucion, revision de sintaxis, etc ) ?
5.- Finalmente, se puede ejecutar el script desde una base de datos ?

He tratado de ejecutar los samples que trae fivewin pero me arrojan errores, por eso posteo esta inquietud

Atentos a sus comentarios,
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Harbour y uso de scripts

Postby hmpaquito » Tue Jul 09, 2019 2:40 pm

Hola,


1.- Los scripts deben ser compilados a .hrb o pueden ser solo .prg ?

Pueden ser de las dos clases


2.- Si quiero proteger estos .prg como puedo encriptarlos ? Algun ejemplo ?

Si, usando .hrb


3.- A nivel de scripts, la sintaxis es la misma que un .prg tradicional, es decir, sin restriccion del tipo de variable (local, estatica, etc), uso de funciones o procedures, etc ?

Si, sin restricciones

4.- Existe documentacion donde pueda ver la sintaxis de Harbour para el manejo de scripts (Ejecucion, revision de sintaxis, etc ) ?

Busque informacion sobre la funcion hb_CompileFromBuffer() y hb_HrbDo() / hb_HrbLoad()
Un buen ejemplo es esta función de Apache.prg desde HFW, que permite archivos .hrb y .prg:

https://github.com/FiveTechSoft/mod_har ... apache.prg
Code: Select all  Expand view
function _AppMain()

   local cFileName

   ErrorBlock( { | o | DoBreak( o ) } )

   cFileName = AP_FileName()
   AddPPRules()

   if File( cFileName )
      if Lower( Right( cFileName, 4 ) ) == ".hrb"
         hb_HrbDo( hb_HrbLoad( cFileName ), AP_Args() )
      else
         hb_SetEnv( "PRGPATH",;
                    SubStr( cFileName, 1, RAt( "/", cFileName ) + RAt( "\", cFileName ) - 1 ) )
         Execute( MemoRead( cFileName ), AP_Args() )
      endif
   else
      ErrorLevel( 404 )
   endif  

return nil
//----------------------------------------------------------------//

function Execute( cCode, ... )

   local oHrb, uRet, lReplaced := .T.
   local cHBheaders1 := "
~/harbour/include"
   local cHBheaders2 := "
c:\harbour\include"

   while lReplaced
      lReplaced = ReplaceBlocks( @cCode, "
{%", "%}" )
      cCode = __pp_process( hPP, cCode )
   end

   oHrb = HB_CompileFromBuf( cCode, .T., "
-n", "-I" + cHBheaders1, "-I" + cHBheaders2,;
                             "
-I" + hb_GetEnv( "HB_INCLUDE" ), hb_GetEnv( "HB_USER_PRGFLAGS" ) )
   if ! Empty( oHrb )
      uRet = hb_HrbDo( hb_HrbLoad( oHrb ), ... )
   endif

return uRet




5.- Finalmente, se puede ejecutar el script desde una base de datos ?

Esta no la entiendo o lo que si entiendo la respuesta es no.


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

Re: Harbour y uso de scripts

Postby cnavarro » Tue Jul 09, 2019 2:53 pm

Si lo que quieres decir es si puedes guardar los scripts en una base de datos, recuperarlos y ejecutarlos, la respuesta es SI
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: Harbour y uso de scripts

Postby Compuin » Tue Jul 09, 2019 2:54 pm

cnavarro wrote:Si lo que quieres decir es si puedes guardar los scripts en una base de datos, recuperarlos y ejecutarlos, la respuesta es SI


Gracias cnavarro, hmpaquito

Como ajusto harbour para que reconozca el #include "fivewin.ch" ?
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Harbour y uso de scripts

Postby cnavarro » Tue Jul 09, 2019 3:10 pm

Fijate en la function Execute del codigo que ha puesto el compañero antes
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: Harbour y uso de scripts

Postby Compuin » Tue Jul 09, 2019 3:35 pm

cnavarro wrote:Fijate en la function Execute del codigo que ha puesto el compañero antes


Me referia como lo hago desde la linea de comando, usando un .bat
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Harbour y uso de scripts

Postby hmpaquito » Wed Jul 10, 2019 6:10 am

Me referia como lo hago desde la linea de comando, usando un .bat


Se puede hacer pasándole la cláusula /i como en el ejemplo:

Code: Select all  Expand view
harbour prueba.prg /ic:\fwh;d:\include\headers.ch;e:\harbour\include\std.ch
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Harbour y uso de scripts

Postby Compuin » Wed Jul 10, 2019 11:57 am

hmpaquito wrote:
Me referia como lo hago desde la linea de comando, usando un .bat


Se puede hacer pasándole la cláusula /i como en el ejemplo:

Code: Select all  Expand view
harbour prueba.prg /ic:\fwh;d:\include\headers.ch;e:\harbour\include\std.ch


Me arroja este error

Code: Select all  Expand view
C:\Harbour\bin>harbour t02.prg /gh /ic:\fwh1901\include\headers.ch;c:\harbour\include\std.ch
Harbour 3.2.0dev (r1904111533)
Copyright (c) 1999-2019, https://harbour.github.io/
Compiling 't02.prg'...
t02.prg(1) Error F0029  Can't open #include file 'FiveWin.ch'

C:\Harbour\bin>
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Harbour y uso de scripts

Postby hmpaquito » Wed Jul 10, 2019 1:14 pm

Lo que puse era un ejemplo.
En tu caso deberia funcionar poniendo en el .bat lo siguiente:

Code: Select all  Expand view
SET INCLUDE=c:\fwh1901\include
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Harbour y uso de scripts

Postby Compuin » Wed Jul 10, 2019 1:21 pm

Gracias hmpaquito

Ahora si funciona
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 66 guests

cron