Clipper/FiveWin - pregunta loca!!!

 
Vista:

pregunta loca!!!

Publicado por probaco (153 intervenciones) el 09/10/2003 20:17:59
Hola a todos.
A ver si esto se puede hacer?

Existe la forma de ejecutar a travez de un exe (clipper-dos) a travez del comando run,function,etc que este llame a otro programa y que este ejecute a la vez un PRG? (como lo hacia el DBASE viejo), sin que el usuario vea ningun cambio de pantalla?

Mi idea es hacer pequeñas funciones a codigo abierto y que se puedan ejecutar a travez del programa principal.
Esto me ayudaria muchisimo para hacer pequenas rutinas y funciones en la pc del usuario sin estar compilando y entregando asi una solucion rapida .

Desde ya muchas gracias
Cesar
Argentina



Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:pregunta loca!!!

Publicado por Gustavo Alvarez Gambini (274 intervenciones) el 09/10/2003 20:28:49
Cesar, nunca he hecho nada parecido pero se me ocurre una idea que creo que te puede funcionar.
Utilizar un RUN no te lo aconsejo porque consume mucha memoria.
Lo que sí podrías hacer por ej.
Si creas un TXT con cada línea de programa lo podrías leer e ir cargando cada línea en un elemento de una matriz.
Luego Evaluas la matriz con AEVAL.
De todas maneras me has creado la inquietud y hoy mismo lo pruebo para ver si funciona y cualquier cosa te paso el código.
Saludos.
Gustavo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:pregunta loca!!!

Publicado por Gustavo Alvarez Gambini (274 intervenciones) el 09/10/2003 23:11:02
Cesar, te envío al correo un programita con lo que quieres hacer.
Si quieres que te lo envíe a otra dirección ponme otro mensaje.
Saludos.
Gustavo.
PD: Quizás tendrías que pulirlo un poco
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:pregunta loca!!!

Publicado por Gustavo Alvarez Gambini (274 intervenciones) el 09/10/2003 23:11:04
Cesar, te envío al correo un programita con lo que quieres hacer.
Si quieres que te lo envíe a otra dirección ponme otro mensaje.
Saludos.
Gustavo.
PD: Quizás tendrías que pulirlo un poco
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:pregunta loca!!!

Publicado por probaco (153 intervenciones) el 10/10/2003 15:19:57
Hola Gustavo!

He recibido el programa tuyo. Hoy mismo me pongo a hacer pruebas.
Mas alla de ser una necesidad de apurar los tiempos de repuesta para los clientes, me parecio una idea interesante el de tener un programa punto EXE como nucleo de un sistema y dejar partes del programa, como Listados, funciones de busqueda, etc, etc, a CODIGO ABIERTO.

Yo tengo un programa comercial donde si un cliente me pide una funcion, Ej, que busque ciertos articulos y que modifique el precio, esa funcion la hago llamar desde una base de datos, segun donde este parado el usuario seejecuta .
Pero la funcion en si la tenia que poner dentro del exe, ahora si esto funciona, y puedo dejarla a codigo abierto, la puedo programar en lo del cliente, dejarla a prueba y si funciona bien, la incluiria dentro del EXE mas adelante.

Me parece buena idea,no??

Voy a probar en base a lo que me mandaste y te comento.

Desde ya muchas gracias !!!
Saludos
Cesar
Argentina

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:pregunta loca!!!

Publicado por Gabriel Pascual (8 intervenciones) el 20/10/2003 02:01:40
Cesar:

Lo que quieres hacer se llama SCRIPTING y ha existido siempre en Clipper, a travez de Macros (&) y bloques de codigo es muy sencillo construir un interprete de Clipper, tipo dBase, de hecho hay varios programas comerciales que hacen lo que tu quieres, tener un solo exe y con codigo abierto PRG y modificar el comportamiento de las funciones del mismo sin necesidad de compilar nada, por ejemplo DataPro de venezuela (www.datapronet.com) o el CresWin de Mexico, hecho en FW que interpreta codigo FW (www.creswin.com.mx) , OZScript (www.ozsoftware.com) son ejemplos de lo que quieres hacer. El pionero de esto para Clipper DOS es DClip, (www.dclip.com)
Esto se basa en una cosa que llama YACC (Yet Another Clipper Comipiler) un prototipo para interpretar codigo Clipper desde un EXE hecho en el mismo clipper. Quiza en TheOasis (www.theoasis.net) puedas encontrar un protopio YACC que puedas utilizar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:pregunta loca!!!

Publicado por probaco (153 intervenciones) el 20/10/2003 16:00:57
Hola Gabriel,

Gracias por tu repuesta.

He intentado hacerlo a travez de macros, pero muchos comandos no lo puedo ejecutar
Ejemplo
CLS
Set key ...
etc,

Vos me podrias explicar, que limitaciones hay en las macros, porque hacer leer un prg o txt, linea x linea es facil, tambien hacerlo ejecutar a travez de una macro & pero como te dije anteriormente hay comandos que no logro hacerlos funcionar.
Mi programa es un programa clipper puro DOS. lo bueno seria hacerlo via programacion, pero si existe otra cosa, bueno...

Desde ya muchas gracias
Cesar
Argentina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:pregunta loca!!!

Publicado por Gustavo Alvarez Gambini (274 intervenciones) el 20/10/2003 19:54:41
Quizás tenga que ver algo con la memoria.
Por ejemplo qué comandos no te permite ejecutar ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:pregunta loca!!!

Publicado por Jose Luis C. M. (16 intervenciones) el 20/10/2003 20:38:30
La ejecución de algunos comandos no la puede realizar Clipper en
el scripting que ya habrás hecho porque debes utilizarlos, no en forma de comando, sino con su función correspondiente. Realmente todos los comandos de Clipper son traducidos por el preprocesador a su forma
"nativa", que es en forma de función o procedimiento. Por ejemplo, el comando CLEAR es "traducido" (o preprocesado) a
Scroll(); SetPos( 0, 0 ); ReadKill( .t. ); GetList := {}
Te recomiendo que evites el uso de comandos en tu archivo de
scripting.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:pregunta loca!!!

Publicado por probaco (153 intervenciones) el 21/10/2003 15:42:57
Yo trato de ejecutar este archivo de texto que es muy simple a travez del aporte de Gustavo, que me envio un fuente practico que tambien estoy analizando.

*te indico la parte de ejecucion, donde tendria que ejecutar el archivo.
.........
...............
For I = 1 to Len( aArray )
cValue := aArray[I]
x := &cValue
Next

*Este es el archivo de prueba que esta preprocesado, (para ver si lo interpretaba mejor, pero no fue asi....)

Scroll() ; SetPos(0,0)
var:=0
while .T.
DevPos( 2, 2 ) ; DevOut( "tomo dato" ) ; SetPos( Row(), Col()+1 ) ; AAdd( GetList, _GET_( var, "var",,, ):display() ); ATail(GetList):CapRow := Row() ; ATail(GetList):CapCol := Col()+1 - __CapLength( "" ) + 1 ; ATail(GetList):Display()
ReadModal(GetList, NIL,,,,,) ; GetList := {}
if lastkey()=27
exit
endif
enddo

Func quit
Local Getlist:={}

alert("llego")
__Keyboard( chr(27) )
return

ya la primer linea del cls o clear da un error. La segunda linea, la ejecuta y despues ya no.
El problema esta ¯o.

Si se les ocurre algo, bienvenido sea, ya que me es importante.

Desde ya muchas gracias
Cesar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar