![]() |
|
Tasker Para hablar de todo lo relacionado con la aplicación tasker |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
![]()
La amiga Viki es una mina de oro. Esta vez la Taskera tiene una consulta de lo más peregrina ...
![]() Tengo esta lista de palabras...Viki no sabe nada de JS y no lo quiere ver ni en pintura, así que solamente vale Tasker puro. ![]() Última edición por WillyWeb Día 01/07/18 a las 10:12:14 |
Gracias de parte de: | ||
|
#2
|
Parece que este "ejercicio" se nos está resistiendo. Y no lo entiendo porque no tiene tanta complicación.
![]() El proceso "manual"... -Saco la primera palabra de la lista y compruebo si se repite -Si no se repite vuelta al principio -Si lo hace extraigo las palabras entre sus dos primeras apariciones El proceso "automático" ... Código:
Entre2Repes (666) A1: Establece Array [ Matriz de Variables (array):%lst Values:,search,movie,mayapur,search,movie1,mayapur2,search,movie3,mayapur,search,movie,mylapore,search,movie,mayapuri,search,movei,mayapur, Separador:, ] <SACA PALABRA> A2: Array Pop [ Matriz de Variables (array):%lst Posición:1 A la variable:%pal ] A3: Establecer variable [ Nombre:%reps A:%lst(#?%pal) Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] A4: Ir a acción [ Tipo:Etiqueta Acción Número:1 Etiqueta:SACA PALABRA ] Si (if) [ %reps = 0 ] A5: Establece Array [ Matriz de Variables (array):%reps Values:%reps Separador:, ] A6: Establecer variable [ Nombre:%dats A:%reps1-1 Recurse Variables:Apagado Calcular:Encendido Añadir:Apagado ] A7: Establecer variable [ Nombre:%dats A:%lst(1:%dats) Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] A8: Flash [ Texto:%pal / %reps / %dats Largo:Encendido ] -Que no existan palabras duplicadas -Que no existan datos entre las repeticiones ¿Alguien lo arregla? ![]() Última edición por WillyWeb Día 02/07/18 a las 16:02:09 Razón: muchas "repeticiones" ;-) |
Gracias de parte de: | ||
#3
|
Basta saber cuando termina de verificar todo.
Y con regex lo tenemos con 1 acción. ![]() Última edición por GraphicAdventure Día 02/07/18 a las 21:12:50 |
#4
|
|
Cita:
![]() |
#5
|
En A4 añadir la condición: AND %lst(#) neq 0
Tengo una duda con una situación. ¿Si el texto es a,b,b,c,b, no tiene que mostrar nada o tiene que mostrar b,c? Es que con regex me encuentra b,c y no veo forma de que no salga nada. |
#6
|
||
Si haces eso la tarea pasará a A5 cuando la lista de palabras se quede vacía exactamente igual que si en A3 se hubiese encontrado una repetición.
¿Es eso lo que querías hacer? ¿Has valorado las implicaciones? Cita:
Cita:
![]() |
#7
|
||
Cita:
Si no hay repeticiones pasa a A5 y %dats no devuelve nada que es lo que interesa saber. Si no hay datos entre repeticiones, lo mismo. Cita:
No estoy seguro que sea posible. Intentaré empezar de cero. |
#8
|
|
Cita:
![]() No tengo muy claro lo que estás intentando. Sacar el texto entre dos repeticiones, teniendo ya localizada la palabra repetida, es cosa fácil, pero tengo la sensación de que quieres dar con una expresión que lo haga todo de una vez ¿...? |
#9
|
|
Cita:
- Hay repetición con datos - Hay repetición sin datos - No hay repetición Esta condición cubre esto y sin ella se queda un bucle interminable. No sé cuál es la situación que dices que no va a funcionar. Puede que no vea alguna. Sobre el regex es una expresión que cubra estos 3 supuestos. El problema es el ,a,b,b,c,b, |
Gracias de parte de: | ||
#10
|
|
Cuando te digo que es casualidad que la tarea haga lo esperado en esos tres supuestos es porque no era mi intención que fuese así. Simplemente hice una "traducción" casi literal del proceso manual al automático sin mirar nada más.
No le des más vueltas. Añadiendo la condición que has propuesto ya no existe posibilidad de que se quede en un bucle sin salida. Esa parte está resuelta. Y eso también soluciona mi segundo escenario no previsto (repetición sin datos) ... %dats no devuelve nada. Algunas veces me asusto de lo finas que me salen las tareas, hasta sin querer afinarlas ... ![]() Cita:
Pues regex no es que sea mi fuerte, pero si te puedo ayudar deja caer por aquí esa expresión y le damos vueltas. ![]() |
Gracias de parte de: | ||
#11
|
Me hiciste buscar los tres pies al gato.
![]() ![]() Tuve que hacer 2 expresiones: Código:
A1: Establecer variable [ %lista ,ant,bar,bar,ant2,ant3,bar, ] A2: Buscar y Reemplazar [ %lista (?=,(.+?),).+?(?=,\1,) ] Una sola coincidencia:Encendido ; Almacenar Coincidencias En:%aaa A3: Buscar y Reemplazar [ %aaa1 ,.+?[^,]+,? ] Si (if) [ %aaa1 Ajuste ] Una sola coincidencia:Encendido ; Reemplazar Coincidencias:Encendido ; Reemplazar Con: A4: Flash [ Texto:%aaa1 ] Última edición por GraphicAdventure Día 05/07/18 a las 13:23:30 |
#12
|
Supongo que en la segunda A2 la variable es %aaa1 en vez de %lista ... ¿no?
![]() Al margen de eso, excelente uso de regex. ![]() Por cierto, podías explicar el funcionamiento de esos grupos de captura que has usado. Dan mucho juego y seguro que te lo agradecen. |
#13
|
Me olvidé de poner los parámetros de las acciones y después los añadí.
La segunda variable de A2 es %aaa, al guardar se queda %aaa1. |
#14
|
Revisa la tarea porque tiene dos acciones A2. Y además, en la segunda A2 (que debería ser A3) has usado %lista y seguramente querías poner %aaa1.
|
#15
|
¡Ah! Copié el texto de A2 y con él la %lista. Corregido.
|
#16
|
https://developer.mozilla.org/es/doc...lobales/RegExp
Quien quiera manejar regex con Tasker, tiene aquí en español los caracteres especiales que hay que aprender. Hay detalles que no están como lookbehind. Voy a mencionar el caso que comenta WillyWeb. Quando se pone algo entre paréntesis en una expresión, ese algo se queda definido como un grupo secuencialmente: (a) (b) (c) ; (a)=grupo1 (b)=grupo2 (c)=grupo3 ... Si quiero usar la misma información de uno de esos grupos en la propia expresión, pongo \n donde n es el número del grupo. Si quiero reemplazar la información encontrada en la búsqueda con la de uno de esos grupos, en 'Reemplazar Con' pongo $n donde n es el número del grupo. En la expresión \n, en reemplazar $n. Si alguien quiere saber más, mejor abrir tema regex para cualquier consulta pero hay bastante información en la web. Última edición por GraphicAdventure Día 05/07/18 a las 15:25:53 |
Los siguientes 2 usuarios han agradecido a GraphicAdventure su comentario: | ||
#17
|
||||
|
||||
Cita:
Muy útil compañero, muchas gracias! ;) |
#18
|
El texto sobre reemplazar la información no estaba bien.
Lo modifiqué para quedar claro. |
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 00:27:35 (GMT +2)
HTCMania: líderes desde el 2007