O.T. preprocesador

O.T. preprocesador

Postby Marcelo Via Giglio » Sat Nov 02, 2013 2:41 am

Hola foro,

tengo un consulta como podría un comando (preprocesador) con texto con mas de una linea, ejemplo

COMANDO comando ;
TEXTO linea1
linea2
linea3
...
linean ;
OPCION1 op1 ;
OPCION2 op2

como cualquier comando de [x]Hb o FW, pero con una opción con un texto de varias líneas, espero este clara la idea

saludos

Marcelo
Marcelo Via Giglio
 
Posts: 1050
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Re: O.T. preprocesador

Postby Antonio Linares » Sat Nov 02, 2013 10:15 am

Marcelo,

Si pudieses especificar una coma despues de cada línea, entonces podrias usar una regla como hacemos en FWH con los ITEMS (ComboBox, etc) que acaban siendo guardados en un array:

[ <it: PROMPTS, ITEMS> <aItems> ] ;
... =>
<aItems>

busca ITEMS en FiveWin.ch :-)
regards, saludos

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

Re: O.T. preprocesador

Postby xmanuel » Sat Nov 02, 2013 2:04 pm

Ya existe un comando en harbour para los textos:

TEXT
...
ENDTEXT
______________________________________________________________________________
Sevilla - Andalucía
xmanuel
 
Posts: 756
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla

Re: O.T. preprocesador

Postby Marcelo Via Giglio » Sat Nov 02, 2013 4:22 pm

Hola,

gracias por las respuestas,

Antonio, no deseo perturbar el texto, por lo tanto no quisiera utilizar , (comas) ya que podría ser parte del texto

Manuel,

si TEXT ... ENDTEXT me sirve, pero el tema es como aumento algo mas a eso, es decir:

COMANDO <Comm>
TEXT
ENDTEXT
PARAMETRO <par1>

algo así, necesito algo mas que solo el texto

Gracias

Marcelo
Marcelo Via Giglio
 
Posts: 1050
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Re: O.T. preprocesador

Postby Antonio Linares » Sat Nov 02, 2013 8:33 pm

Marcelo, Manuel,

la cuestión es que TEXT ... ENDTEXT no lo procesa el preprocesador, sino el propio compilador, asi que no podemos ampliarlo.

Si pudieses situar cada línea entre comillas (simples, en caso de que se usen las dobles en el texto), y añadiendo la coma final que te comentaba, entonces el preprocesador podría servirte.

No podrias leer el texto desde un fichero externo ? O generarlo temporalmente ?
regards, saludos

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

Re: O.T. preprocesador

Postby Marcelo Via Giglio » Sun Nov 03, 2013 4:39 pm

Antonio,

gracias por responder, el tema es que quiero simplificar las llamadas a sentencias SQL algo asi:

EXECUTESQL select *
from clientes
where estado = '$1'
and salario > $2
and gestion = $3
PARAMETERS 'A', 1000, 2012
SAVETOARRAY aSet
...

es la idea, ya lo tengo como función, pero sería mucho mas claro si lo podría hacer así

Muchas gracias por la ayuda

saludos

Marcelo
Marcelo Via Giglio
 
Posts: 1050
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Re: O.T. preprocesador

Postby Antonio Linares » Mon Nov 04, 2013 9:17 am

Marcelo,

Asi compila bien:

marcelo.prg
Code: Select all  Expand view
#xcommand EXECUTESQL <cSqlSentence> ;
             [ PARAMETERS <params,...> ] ;
             [ SAVETOARRAY <aArray> ] ;
       => ;
          TuFuncion( <cSqlSentence>, [<params>], [<aArray>] )

function Main()

   EXECUTESQL "select * " + ;
      "from clientes " +  ;
      "where estado = '$1' " + ;
      "and salario > $2 " + ;
      "and gestion = $3" ;
   PARAMETERS 'A', 1000, 2012 ;
   SAVETOARRAY aSet

return nil
regards, saludos

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

Re: O.T. preprocesador

Postby Marcelo Via Giglio » Tue Nov 05, 2013 2:04 am

Estimado Antonio,

tu propuesta es funcional y ya había probado algo así, pero mi intención era evitar las comillas ("") y los + ; para que sea mas legible y sencillo de escribir, pero por lo visto creo que no será posible salvo utilizando TEXT ENDTEXT de manera previa y esa variable pasarla al comando.

Muchas gracias

Marcelo
Marcelo Via Giglio
 
Posts: 1050
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Re: O.T. preprocesador

Postby Antonio Linares » Tue Nov 05, 2013 2:02 pm

Marcelo,

No logro imaginar como vas a usar TEXT ... ENDTEXT para lo que quieres hacer.

De todas formas, si lo consigues será interesante ver como lo has hecho :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41356
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 45 guests