Acceder

Ver la Versión Completa : [ SOLUCIONADO ] Manejar el Cambio-De-Línea dentro de una variable


Caravantes
12/02/14, 14:38:15
La acción BUSCAR Y REEMPLAZAR permite localizar cualquier carácter o secuencia de caracteres en una variable, y sustituirlo por nada o por otro carácter/secuencia. Sin embargo, no encuentro la forma de reconocer el cambio de línea para sustituirlo por otra cosa ni tampoco puedo utilizarlo como sustituto de otra cosa.

En Word (el tratamiento de textos) es sencillo: Pulsas Ctrl-L para abrir el cuadro de BUSCAR Y REEMPLAZAR, y en ese cuadro puedes utilizar la secuencia-clave ^p para buscar los cambios de línea o para insertarlos en lugar de otra cosa. Querría hacer algo igual con Tasker, pero no encuentro la forma.

También me interesaría utilizar la acción SEPARAR VARIABLE, utilizando como divisor el cambio de línea, y tengo el mismo problema: no sé cómo indicárselo a Tasker.

Caravantes
12/02/14, 14:52:52
Manejar el Cambio-De-Línea dentro de una variable

Bueno, yo mismo he encontrado la solución, haciendo una búsqueda anglófona en Google (Tasker Find OR Replace "carriage return" OR "paragraph mark" OR "new line") que me ha llevado a https://groups.google.com/forum/#!msg/tasker/0c26xF55GgA/UcDwu7DT0cEJ

El truco es crear otra variable que podemos llamar %ret (return) y meterle dentro un cambio de línea. Acción ESTABLECER VARIABLE, Nombre %ret, A ... (en esta casilla solo hay que pulsar la tecla de Return o tecla de cambio-de-linea).

Tras eso ya puede usarse la acción BUSCAR Y REEMPLAZAR usando esta nueva variable %ret como elemento a buscar/reemplazar; o la acción SEPARAR VARIABLE utilizando como divisor esta variable %ret. Acabo de probarlo con esas dos acciones y funciona perfectamente.

Caravantes
12/02/14, 14:54:10
Post duplicado... Disculpas.

maid450
12/02/14, 14:57:41
En muchos lenguajes se usa "\n" para indicar un salto de linea, puedes ver si te funciona y te ahorras una variable extra

Caravantes
12/02/14, 15:23:50
En muchos lenguajes se usa "\n" para indicar un salto de linea

Muchas gracias por la sugerencia.
He probado y resulta que funciona a medias.
En la acción BUSCAR Y REEMPLAZAR, \n sirve para localizar los cambios-de-línea y sustitirlos por otra cosa, perfecto. :ok:
En la acción SEPARAR VARIABLE, \n no funciona como divisor aunque la variable tenga varias líneas. :cry:
En ambos casos he usado la misma variable con el mismo contenido, y también me he asegurado de que el \n lo he escrito igual en las dos acciones.

Pruebas (72)
A1: Establecer variable [ Nombre:%alfa A:uno
dos
tres Calcular:Apagado Añadir:Apagado ]
A2: Establecer variable [ Nombre:%ret A:
Calcular:Apagado Añadir:Apagado ]
A3: Buscar y Reemplazar Contenido de Variable [ Variable:%alfa Buscar:\n Ignore Case:Apagado Multi-Line:Apagado One Match Only:Apagado Almacenar Coincidencias En: Reemplazar Coincidencias:Encendido Reemplazar Con:&&& ]
A4: Flash [ Texto:%alfa Largo:Apagado ]
A5: Establecer variable [ Nombre:%alfa A:uno
dos
tres Calcular:Apagado Añadir:Apagado ]
A6: Separar variable [ Nombre:%alfa Separador:\n Eliminar base:Apagado ]
A7: Flash [ Texto:%alfa2 Largo:Apagado ]

mlesir
12/02/14, 17:36:26
Por cierto ya que estas amplio un poco. En separar variable no se puede usar regex, espacios al ppo o al final del criterio de búsqueda, ni claro está espacios solos.