Home Menu

Menu



Tasker Para hablar de todo lo relacionado con la aplicación tasker


 
Herramientas
  #1  
Viejo 30/06/18, 11:17:54
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
interrogacion Ejercicios de verano (datos entre las dos primeras repeticiones)

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...

(,search,movie,mayapur,search,movie1,mayapur2,sear ch,movie3,maya,pur,search,movie,mylapore,search,mo vie,mayapuri,search,movei,mayapur,)

¿Podría alguien ayudarme a encontrar los datos entre las dos primeras palabras repetidas?

En este caso la primera palabra que se repite es "search" y el resultado debería ser (movie mayapur) sin las comas.
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
Responder Con Cita
Gracias de parte de:


  #2  
Viejo 02/07/18, 10:16:15
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
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 ]
El proceso no tiene en cuenta dos cosas ...

-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" ;-)
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 02/07/18, 20:53:19
Avatar de GraphicAdventure
GraphicAdventure GraphicAdventure no está en línea
Miembro del foro
Mensajes: 277
 
Fecha de registro: oct 2013
Localización: España
Mensajes: 277
Modelo de smartphone: S3 Mini I8190N
Versión de ROM: JB 4.1.2
Tu operador: Movistar
Mencionado: 11 comentarios
Tagged: 0 hilos
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
Responder Con Cita
  #4  
Viejo 03/07/18, 10:31:06
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
Cita:
Originalmente Escrito por GraphicAdventure Ver Mensaje
Basta saber cuando termina de verificar todo.
Y con regex lo tenemos con 1 acción.
Muero de ganas de comparar nuestras soluciones.
Responder Con Cita
  #5  
Viejo 03/07/18, 22:23:01
Avatar de GraphicAdventure
GraphicAdventure GraphicAdventure no está en línea
Miembro del foro
Mensajes: 277
 
Fecha de registro: oct 2013
Localización: España
Mensajes: 277
Modelo de smartphone: S3 Mini I8190N
Versión de ROM: JB 4.1.2
Tu operador: Movistar
Mencionado: 11 comentarios
Tagged: 0 hilos
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.
Responder Con Cita
  #6  
Viejo 04/07/18, 07:53:38
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
Cita:
Originalmente Escrito por GraphicAdventure Ver Mensaje
En A4 añadir la condición: AND %lst(#) neq 0
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:
Originalmente Escrito por GraphicAdventure Ver Mensaje
¿Si el texto es a,b,b,c,b, no tiene que mostrar nada o tiene que mostrar b,c?
En ese caso la primera repetición es ... ,a,b,b,c,b, ... y lo correcto sería no devolver nada.

Cita:
Originalmente Escrito por GraphicAdventure Ver Mensaje
Es que con regex me encuentra b,c y no veo forma de que no salga nada.
Seguro que eso se puede solucionar cambiando "un poco" el regex.
Responder Con Cita
  #7  
Viejo 04/07/18, 10:31:15
Avatar de GraphicAdventure
GraphicAdventure GraphicAdventure no está en línea
Miembro del foro
Mensajes: 277
 
Fecha de registro: oct 2013
Localización: España
Mensajes: 277
Modelo de smartphone: S3 Mini I8190N
Versión de ROM: JB 4.1.2
Tu operador: Movistar
Mencionado: 11 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por WillyWeb Ver Mensaje
¿Es eso lo que querías hacer?
¿Has valorado las implicaciones?
Si hay implicaciones ahora mismo no las veo.
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:
Originalmente Escrito por WillyWeb Ver Mensaje
Seguro que eso se puede solucionar cambiando "un poco" el regex.
Ya di varios planteamientos pero no cubre todas las posibilidades.
No estoy seguro que sea posible.
Intentaré empezar de cero.
Responder Con Cita
  #8  
Viejo 04/07/18, 12:20:58
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
Cita:
Originalmente Escrito por GraphicAdventure Ver Mensaje
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.
Pues ya es casualidad que el resultado sea el esperado. Pero de pura casualidad.

Cita:
Originalmente Escrito por GraphicAdventure Ver Mensaje
Ya di varios planteamientos pero no cubre todas las posibilidades.
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 ¿...?
Responder Con Cita
  #9  
Viejo 04/07/18, 13:06:05
Avatar de GraphicAdventure
GraphicAdventure GraphicAdventure no está en línea
Miembro del foro
Mensajes: 277
 
Fecha de registro: oct 2013
Localización: España
Mensajes: 277
Modelo de smartphone: S3 Mini I8190N
Versión de ROM: JB 4.1.2
Tu operador: Movistar
Mencionado: 11 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por WillyWeb Ver Mensaje
Pues ya es casualidad que el resultado sea el esperado. Pero de pura casualidad.
Solo veo 3 supuestos:
- 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,
Responder Con Cita
Gracias de parte de:
  #10  
Viejo 04/07/18, 13:38:13
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
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:
Originalmente Escrito por GraphicAdventure Ver Mensaje
Sobre el regex es una expresión que cubra estos 3 supuestos.
El problema es el ,a,b,b,c,b,
Entonces tu intención es hacer una expresión que resuelva el problema de una tacada y se te está resistiendo ese caso en concreto ¿...?

Pues regex no es que sea mi fuerte, pero si te puedo ayudar deja caer por aquí esa expresión y le damos vueltas.
Responder Con Cita
Gracias de parte de:
  #11  
Viejo 05/07/18, 11:00:23
Avatar de GraphicAdventure
GraphicAdventure GraphicAdventure no está en línea
Miembro del foro
Mensajes: 277
 
Fecha de registro: oct 2013
Localización: España
Mensajes: 277
Modelo de smartphone: S3 Mini I8190N
Versión de ROM: JB 4.1.2
Tu operador: Movistar
Mencionado: 11 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por WillyWeb Ver Mensaje
No le des más vueltas.
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
Responder Con Cita
  #12  
Viejo 05/07/18, 12:28:39
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
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.
Responder Con Cita
  #13  
Viejo 05/07/18, 13:10:41
Avatar de GraphicAdventure
GraphicAdventure GraphicAdventure no está en línea
Miembro del foro
Mensajes: 277
 
Fecha de registro: oct 2013
Localización: España
Mensajes: 277
Modelo de smartphone: S3 Mini I8190N
Versión de ROM: JB 4.1.2
Tu operador: Movistar
Mencionado: 11 comentarios
Tagged: 0 hilos
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.
Responder Con Cita
  #14  
Viejo 05/07/18, 13:18:49
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
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.
Responder Con Cita
  #15  
Viejo 05/07/18, 13:23:43
Avatar de GraphicAdventure
GraphicAdventure GraphicAdventure no está en línea
Miembro del foro
Mensajes: 277
 
Fecha de registro: oct 2013
Localización: España
Mensajes: 277
Modelo de smartphone: S3 Mini I8190N
Versión de ROM: JB 4.1.2
Tu operador: Movistar
Mencionado: 11 comentarios
Tagged: 0 hilos
¡Ah! Copié el texto de A2 y con él la %lista. Corregido.
Responder Con Cita
  #16  
Viejo 05/07/18, 14:29:33
Avatar de GraphicAdventure
GraphicAdventure GraphicAdventure no está en línea
Miembro del foro
Mensajes: 277
 
Fecha de registro: oct 2013
Localización: España
Mensajes: 277
Modelo de smartphone: S3 Mini I8190N
Versión de ROM: JB 4.1.2
Tu operador: Movistar
Mencionado: 11 comentarios
Tagged: 0 hilos
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
Responder Con Cita
Los siguientes 2 usuarios han agradecido a GraphicAdventure su comentario:
  #17  
Viejo 05/07/18, 14:45:04
Avatar de SmartPhoneLover
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
Mensajes: 542
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar
Mencionado: 4 comentarios
Tagged: 1 hilos
Cita:
Originalmente Escrito por GraphicAdventure Ver Mensaje
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 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.

Muy útil compañero, muchas gracias! ;)
Responder Con Cita
  #18  
Viejo 05/07/18, 15:29:09
Avatar de GraphicAdventure
GraphicAdventure GraphicAdventure no está en línea
Miembro del foro
Mensajes: 277
 
Fecha de registro: oct 2013
Localización: España
Mensajes: 277
Modelo de smartphone: S3 Mini I8190N
Versión de ROM: JB 4.1.2
Tu operador: Movistar
Mencionado: 11 comentarios
Tagged: 0 hilos
El texto sobre reemplazar la información no estaba bien.
Lo modifiqué para quedar claro.
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Otro software para Android > Tasker


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 00:27:35 (GMT +2)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007