Concatenar línea de script pawn

  • 2 Respuestas
  • 2196 Vistas

PabloS

  • Novato
  • *
  • Mensajes: 18
Concatenar línea de script pawn
« : septiembre 14, 2013, 12:37:10 pm »
Hola Boris,

Una consulta, para cuando una línea en Pawn es muy larga, hay alguna manera de generar una salto de línea como existe el &_ para visual?

Código: [Seleccionar]
if(SmtpSend("mi@correo.com.ar", "avisos@correo.com.ar", "Email automatico", "Este es un correo automático que muestra el estado de las primeras cuatro entradas discretas\n DIN1: %d\n, DIN2: %d\n, DIN3: %d\n DIN4: %d, pBoolRead(gb_DIN1),pBoolRead(gb_DIN2),pBoolRead(gb_DIN3),pBoolRead(gb_DIN4)) < 0) CurrentFlow = 0

Estaría bueno que se pueda escribir algo asi, para que sea mas facil de leer:

Código: [Seleccionar]
if(SmtpSend("mi@correo.com.ar", "avisos@correo.com.ar", "Email automatico", (concatenador)
"Este es un correo automático que muestra el estado de las primeras cuatro entradas discretas\n" (concatenador)
"DIN1: %d\n, DIN2: %d\n, DIN3: %d\n DIN4: %d, pBoolRead(gb_DIN1),pBoolRead(gb_DIN2), (concatenador)
pBoolRead(gb_DIN3),pBoolRead(gb_DIN4)) < 0) CurrentFlow = 0

Gracias,

Pablo

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2114
  • Soporte Técnico
Re: Concatenar línea de script pawn
« Respuesta #1 : septiembre 15, 2013, 17:02:12 pm »
Buen dia Pablo,

Para cadenas literales o constantes, podes utilizar el operador elipsis o (tres-puntos o "...") entre los dos strings, por ejemplo:

Código: [Seleccionar]

new StringLargo[] = "Este es un ejemplo de un " ...
                            "string muy largo y concatenado" ...
                            "en tres lineas."

LcdPrintf(0,0, "Imprimir %s", StringLargo)


Tambien Alternativamente:

Código: [Seleccionar]

LcdPrintf(0,0, "Imprimir %s", \
                    "Este es un ejemplo de un " ...
                    "string muy largo y concatenado" ...
                    "en tres lineas")


Notar como para la concatenación de strings se utiliza el operador "..." y entre los argumentos utilizados usamos la barra "\" para
continuar en la linea de abajo.

Para tu ejemplo del mail quedaria:

Código: [Seleccionar]

if(SmtpSend("mi@correo.com.ar", "ellos@yahoo.com.ar", \
   "avisos@correo.com.ar", "Email automatico", \
   "Este es un correo automático que muestra el estado de las primeras" ...\
   " cuatro entradas discretas\n DIN1: %d\n, DIN2: %d\n, DIN3: %d\n DIN4: %d",\
   pBoolRead(gb_DIN1), pBoolRead(gb_DIN2), pBoolRead(gb_DIN3),pBoolRead(gb_DIN4)) < 0)
{
CurrentFlow = 0
}


Recorda que para enviar un mail, el largo del string final tiene un limite (fíjate en la nota de aplicación).

Te comento que pronto vamos a subir la version 1.4.8 de StxLadder, que ademas de tener algunas mejoras, filtra
muchos mensajes de "warning" que son confusos para el usuario final, como el loose identation que anteriormente
nos consultaste.

Saludos
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

Atención: Desde el 13 de enero al 10 de febrero de 2020, cerramos por vacaciones.
Tenga en cuenta para sus pedidos y/o consultas.

PabloS

  • Novato
  • *
  • Mensajes: 18
Re: Concatenar línea de script pawn
« Respuesta #2 : septiembre 16, 2013, 15:15:15 pm »
Gracias.
Ya estoy bajando la nueva versión.