Crear cCode para script de Harbour

Crear cCode para script de Harbour

Postby Compuin » Mon Jan 02, 2017 3: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 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: Crear cCode para script de Harbour

Postby Antonio Linares » Mon Jan 02, 2017 8: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
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Crear cCode para script de Harbour

Postby Compuin » Mon Jan 02, 2017 1:14 pm

Gracias,

No hace falta reescribir execcute() en mi codigo entonces?
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: Crear cCode para script de Harbour

Postby Compuin » Mon Jan 02, 2017 1:27 pm

Me arroja este error

Script error at line:0

Se detecto corrupcion
HB_HBLOAD
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: Crear cCode para script de Harbour

Postby Compuin » Mon Jan 02, 2017 10:44 pm

alguna sugerencia?
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: Crear cCode para script de Harbour

Postby Antonio Linares » 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
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Crear cCode para script de Harbour

Postby Compuin » Mon Jan 02, 2017 11:52 pm

fwh 14
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: Crear cCode para script de Harbour

Postby Antonio Linares » Mon Jan 02, 2017 11:53 pm

Puedes proporcionar un ejemplo que reproduzca el error ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Crear cCode para script de Harbour

Postby Compuin » 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 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: Crear cCode para script de Harbour

Postby Antonio Linares » 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
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Crear cCode para script de Harbour

Postby Compuin » Tue Jan 03, 2017 12:34 am

Cambie a FUNCTION ESPACIO()

Igual resultado
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: Crear cCode para script de Harbour

Postby Sistem » 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 :arrow: Harbour

Image
FWH2008 | xHarbour | BCC74 | SQLRDD
User avatar
Sistem
 
Posts: 226
Joined: Sun May 13, 2012 7:52 am

Re: Crear cCode para script de Harbour

Postby Compuin » Tue Jan 03, 2017 1:11 am

Ok pero no esta funcionando en este caso
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: Crear cCode para script de Harbour

Postby Antonio Linares » Tue Jan 03, 2017 8: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: Select all  Expand view
#include "FiveWin.ch"

function Main()

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

return nil


espacio.prg
Code: Select all  Expand view
function Test()

  local nLen := 50

return nLen


Image
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 93 guests