Page 1 of 2
Crea LIB (xa)Script, un sueño
Posted: Sun Feb 01, 2015 5:01 pm
by Armando
Antonio:
Como dijo M. L. King, "Tengo un sueño", que tan posible es crear un LIB como
la xaScript de tu ex o como la de xHarbour profesional ????.
Saludos
Re: Crea LIB (xa)Script, un sueño
Posted: Sun Feb 01, 2015 6:19 pm
by Antonio Linares
Armando,
Ese sueño es una realidad y mucho más poderosa
La librería hbcplr.lib de Harbour, no es que sea un "script", es que es Harbour "entero" a tu disposición y desde tu propia aplicación.
Descarga fivedit.exe desde aqui:
https://bitbucket.org/fivetech/fivewin- ... ivedit.zip
(incluye todo el código fuente para que veas como se hace)
Escribe el código que quieras y pulsa el botón "script" de la barra de botones. Tu código se compila y se ejecuta en memoria!!!
Los "scripts" anteriores eran juguetes comparados con esto
Re: Crea LIB (xa)Script, un sueño
Posted: Sun Feb 01, 2015 7:37 pm
by Armando
Antonio:
Hasta ahora mis aplicaciones están hechas con FW y xHarbour pero si ya existe
dicha lib bien vale la pena mudarme a Harbour, seguramente tendré que hacer
cambios a mi código pero vale la pena.
Voy a probarla, ya te informaré el resultados.
Con que versiones de Harbour y Borland debo usar?
Saludos
Re: Crea LIB (xa)Script, un sueño
Posted: Sun Feb 01, 2015 9:27 pm
by Verhoven
Hasta donde tengo probado, que lo he cambiado todo bastante rápido de xHarbour a HBarbour entre diciembre pasado y enero, va bien con BCC 582, BCC 6.3 (para 32 bits) y Visual Studio Comunity 2013 para 64 bits. Las versiones de Harbour y FW son de enero y son las descargadas de fivetech. Hay varios post recientes donde puedes ver _ (pocos) que hemos tenido que acometer.
Re: Crea LIB (xa)Script, un sueño
Posted: Mon Feb 02, 2015 1:19 am
by Armando
Antonio:
He descargado FiveEdit como lo indicaste, descargue Harbour 3.2 20141218 de Bitbucket,
pruebo FiveEdit con lo anterior más FWH1312 previa configuración para indicar los paths
correcto y no pasa nada al dar clic sobre el botón SCRIPT solo con el botón RUN funciona.
Será que algo me falta ?
Saludos
Re: Crea LIB (xa)Script, un sueño
Posted: Mon Feb 02, 2015 6:48 am
by Antonio Linares
Armando,
Al arrancar fivedit te aparece un código por defecto con un MsgInfo().
Primero comprueba que tu configuración de fivedit sea correcta (path de FWH)
Al pulsar "script" ejecutará tu código en memoria.
Yo llevo mucho tiempo insistiendo en que esta es la razón más importante para usar Harbour en vez de xHarbour
Re: Crea LIB (xa)Script, un sueño
Posted: Mon Feb 02, 2015 11:14 am
by AngelSalom
Antonio, revisa
Code: Select all
oHrb = HB_CompileFromBuf( StrTran( ::oEditor:GetText(), "Main", "__Main" ),;
"-n", "-I..\include", "-Ic:\harbour\include" )
Para que coja la carpeta indicada en las preferencias de la aplicación y no c:\harbour\include "a piñón".
Re: Crea LIB (xa)Script, un sueño
Posted: Mon Feb 02, 2015 11:16 am
by Antonio Linares
Angel, gracias!
Re: Crea LIB (xa)Script, un sueño
Posted: Mon Feb 02, 2015 11:18 am
by Antonio Linares
Cambiado por:
Code: Select all
oHrb = HB_CompileFromBuf( StrTran( ::oEditor:GetText(), "Main", "__Main" ),;
"-n", "-I" + AllTrim( ::cFWHPath ) + "\include",;
"-I" + AllTrim( ::cHarbPath ) + "\include" )
Re: Crea LIB (xa)Script, un sueño
Posted: Mon Feb 02, 2015 3:27 pm
by Armando
Antonio:
Wow, ahora sí funca. Voy a revisar el código de FiveEdit para tratar de entender el truco
pero si tú puedes orientarme, te lo voy a agradecer.
Saludos
Re: Crea LIB (xa)Script, un sueño
Posted: Mon Feb 02, 2015 8:08 pm
by Armando
Antonio:
Veo que en el siguiente código se efectúa la magia
Code: Select all
METHOD RunScript() CLASS TFivedit
local oHrb, cResult, bOldError
FReOpen_Stderr( "comp.log", "w" )
oHrb = HB_CompileFromBuf( StrTran( ::oEditor:GetText(), "Main", "__Main" ),;
"-n", "-I" + AllTrim( ::cFWHPath ) + "\include",;
"-I" + AllTrim( ::cHarbPath ) + "\include" )
if "error" $ MemoRead( "comp.log" )
MsgInfo( MemoRead( "comp.log" ), "Error" )
else
if ! Empty( oHrb )
BEGIN SEQUENCE
bOldError = ErrorBlock( { | o | DoBreak( o ) } )
hb_HrbRun( oHrb )
END SEQUENCE
ErrorBlock( bOldError )
endif
endif
return nil
Si entiendo bien se compila el PRG que hay en memoria (HB_CompileFromBuf) y después, si no hay error, se ejecuta
(hb_HrbRun( oHrb )), tengo una aplicación que entre otras cosas necesito que ejecute un script ubicado en alguna
carpeta del disco duro, supongo que debe haber un método para compilar tomando el PRG desde disco, podrías
orientarme?
Saludos
Re: Crea LIB (xa)Script, un sueño
Posted: Mon Feb 02, 2015 9:12 pm
by cnavarro
Prueba con MemoRead( cFile )
Re: Crea LIB (xa)Script, un sueño
Posted: Mon Feb 02, 2015 9:23 pm
by AngelSalom
Armando, hecha un vistazo a scripts.prg en el directory samples de FWH. Verás un ejemplo totalmente funcional.
Re: Crea LIB (xa)Script, un sueño
Posted: Mon Feb 02, 2015 9:28 pm
by mastintin
Lo que no me acaba de gustar del todo, es el tener que colocar en el pc del usuario final las carpetas con los includes tanto de harbour como de fwh . ¿ No se podría empaquetar todos esos archivos dentro de un fichero que se distribuya ? . ¿ algo como una dll ? .
El riesgo de que un usuario final toque un archivo y estropee el programa se multiplica por cada archivo que coloquemos .
Re: Crea LIB (xa)Script, un sueño
Posted: Mon Feb 02, 2015 10:24 pm
by Armando
Señores:
A todos, muchas gracias por sus comentarios.
Seguiré lo indicado.
Saludos