FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Crear cCode para script de Harbour
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Crear cCode para script de Harbour
Posted: Mon Jan 02, 2017 03:34 AM
Hola,

Como puedo crear el cCode para utilizarlo con la funcion execute que viene con Harbour y donde deberia ir este codigo en mi aplicacion (Dentro como una funcion o desde un archivo externo)

function Execute( cCode, ... )

local oHrb, cResult, bOldError, uRet
local cFWheaders := If( lIsDir( ".\include" ), ".\include", "c:\FWH\include" )
local cHBheaders := If( lIsDir( ".\include" ), ".\include", "c:\harbour\include" )

// FReOpen_Stderr ( "comp.log", "w" )
oHrb = HB_CompileFromBuf( cCode, "-n", "-I" + cFWheaders, "-I" + cHBheaders )
if ! Empty( oHrb )
BEGIN SEQUENCE
bOldError = ErrorBlock( { | o | DoBreak( o ) } )
uRet = hb_HrbDo( hb_HrbLoad( oHrb ), ... )
END SEQUENCE
ErrorBlock( bOldError )
endif

return uRet


Gracias por los aportes

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Crear cCode para script de Harbour
Posted: Mon Jan 02, 2017 08:18 AM

cCode = MemoRead( "code.prg" )

Execute( cCode )

cCode puedes leerlo desde un fichero, 贸 desde el campo de una DBF, etc.

la funci贸n Execute() es de FWH

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Crear cCode para script de Harbour
Posted: Mon Jan 02, 2017 01:14 PM

Gracias,

No hace falta reescribir execcute() en mi codigo entonces?

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Crear cCode para script de Harbour
Posted: Mon Jan 02, 2017 01:27 PM
Me arroja este error

Script error at line:0

Se detecto corrupcion
HB_HBLOAD

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Crear cCode para script de Harbour
Posted: Mon Jan 02, 2017 10:44 PM

alguna sugerencia?

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Crear cCode para script de Harbour
Posted: Mon Jan 02, 2017 11:49 PM
> No hace falta reescribir Execute() en mi codigo entonces?

Que versi贸n de FWH usas ? La funci贸n Execute() est谩 disponible desde la versi贸n 12.07 de FWH

Script error at line:0

Se detecto corrupcion
HB_HBLOAD


Que c贸digo est谩s ejecutando ? C贸mo est谩s usando la funci贸n Execute() ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Crear cCode para script de Harbour
Posted: Mon Jan 02, 2017 11:52 PM

fwh 14

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Crear cCode para script de Harbour
Posted: Mon Jan 02, 2017 11:53 PM

Puedes proporcionar un ejemplo que reproduzca el error ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Crear cCode para script de Harbour
Posted: Mon Jan 02, 2017 11:55 PM

cCode:=MemoRead("espacio.prg")
IF (nLen:=EXECUTE(cCode))

En espacio.prg

FUNCTION MAIN()
LOCAL nLen :=50
RETURN nLen

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Crear cCode para script de Harbour
Posted: Tue Jan 03, 2017 12:14 AM

Usa otro nombre diferente a Main aqui:

FUNCTION MAIN()

por ejemplo

FUNCTION Test()

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Crear cCode para script de Harbour
Posted: Tue Jan 03, 2017 12:34 AM

Cambie a FUNCTION ESPACIO()

Igual resultado

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 226
Joined: Sun May 13, 2012 07:52 AM
Re: Crear cCode para script de Harbour
Posted: Tue Jan 03, 2017 12:58 AM
Antonio Linares wrote:cCode = MemoRead( "code.prg" )

Execute( cCode )

cCode puedes leerlo desde un fichero, 贸 desde el campo de una DBF, etc.

la funci贸n Execute() es de FWH


la funci贸n Execute() es de FWH :-) Harbour

FWH2008 | xHarbour | BCC74 | SQLRDD
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Crear cCode para script de Harbour
Posted: Tue Jan 03, 2017 01:11 AM

Ok pero no esta funcionando en este caso

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Crear cCode para script de Harbour
Posted: Tue Jan 03, 2017 08:51 AM
Aqui est谩s usando un valor num茅rico como un valor l贸gico:

IF (nLen:=EXECUTE(cCode))

y eso genera un error.

Tu ejemplo funciona correctamente de esta forma:

compuin.prg
Code (fw): Select all Collapse
#include "FiveWin.ch"

function Main()

   local cCode := MemoRead( "espacio.prg" )
   
   MsgInfo( Execute( cCode ) )

return nil


espacio.prg
Code (fw): Select all Collapse
function Test()

  local nLen := 50

return nLen


regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion