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

Respuesta
 
Herramientas
  #1  
Viejo 31/10/16, 11:03:50
Array

[xs_avatar]
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar

Problema curioso con variables en Tasker

Estuve probando con variables y resulta que ahora cada variable (global) que cree y decida exportar x resultado a ella, Tasker automáticamente me crea una segunda variable con el mismo nombre base, pero agregando un número al final de ésta última.
Recuerdo que es me empezó a a pasar cuando intente tirar de: %xxxx(<), pues antes no me pasa.

Por si no me habeis comprendido, desde ese momento hasta ahora mismo Tasker no para de crearme una segunda variable con el número asociado a ésta segunda, y en vez de volcar el contenido que quiero en la variable principal, me lo almacena en la segunda versión creada por Tasker mismo.

De otro modo:
1. Creo acción para listar archivos, y establesco la variable de salida de datos llamada '%TestOut'.
2. Ejecuto la acción...
3. Compruebo el resultado almacenado, y resulta que en la sección de VARIABLES hay una nueva variable que YO NO HE CREADO llamada '%TestOut1', y en ésta es donde Tasker arrojó el resultado de la acción nº1. La variable original esta VACÍA!

Última edición por SmartPhoneLover Día 01/11/16 a las 09:10:54.
Responder Con Cita


  #2  
Viejo 31/10/16, 11:19:06
Array

[xs_avatar]
WillyWeb WillyWeb no está en línea
Usuario muy activo
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
Seguramente no has reparado en ello hasta ahora, pero esa es la forma de funcionar de un array.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]

Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino)
Responder Con Cita
  #3  
Viejo 31/10/16, 11:27:46
Array

[xs_avatar]
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar

Si, lo sabía. Por eso he intentado con vaciarla usando: Variables > Array Clear, y pongo el nombre de %TestOut y en otra el de la variable %TestOut1. Pero sigue pasando lo mismo.

O quizás lo esté entendiendo y haciendo mal... ¿?
Responder Con Cita
  #4  
Viejo 31/10/16, 11:55:18
Array

[xs_avatar]
Caravantes Caravantes no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Tu operador: Lowi
 Cita: Originalmente Escrito por SmartPhoneLover Ver Mensaje
O quizás lo esté entendiendo y haciendo mal... ¿?
Un array puede ser creado automáticamente como consecuencia de algunas acciones, como por ejemplo la acción SEPARAR VARIABLE (o "dividir" variable). Quizá sea que estás utilizando alguna de estas acciones y por eso aparece una sub-variable del array. Si nos muestras la tarea seguramente podamos hacer un diagnóstico más preciso. Porsupuesto, siempre existe la posibilidad de que tu Tasker no esté funcionando bien, cosa que también podríamos intentar comprobar copiando esa tarea en otros dispositivos para ver si el problema desaparece.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Responder Con Cita
  #5  
Viejo 31/10/16, 11:59:22
Array

[xs_avatar]
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar

La cosa es que ya elimine las anteriores acciones que creo fue donde surgió el problema. Ahora solo me queda el inconveniente de que cada variable global que cree en Tasker, sea en el proyecto o sección (pestañas) que sea, siempre se me duplica la variable original y Tasker crea una segunda con el contenido que debería estar en la que YO he creado.
Responder Con Cita
  #6  
Viejo 31/10/16, 12:13:52
Array

[xs_avatar]
WillyWeb WillyWeb no está en línea
Usuario muy activo
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
 Cita: Originalmente Escrito por SmartPhoneLover Ver Mensaje
Si, lo sabía. Por eso he intentado con vaciarla usando: Variables > Array Clear, y pongo el nombre de %TestOut y en otra el de la variable %TestOut1. Pero sigue pasando lo mismo.

O quizás lo esté entendiendo y haciendo mal... ¿?
Me parece que Array Clear elimina el contenido, no la variable.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]

Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino)
Responder Con Cita
  #7  
Viejo 31/10/16, 12:15:29
Array

[xs_avatar]
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar

Me acabo de acordar que tengo habilitada la opción en Tasker de crear backups automáticos. Voy a ver si en alguno de esos archivos figura el cambio inicial a partir del cual surgió todo, y si logro encontrar la anterior a eso para ver si es posible restaurarlo.
Responder Con Cita
  #8  
Viejo 31/10/16, 12:23:30
Array

[xs_avatar]
Caravantes Caravantes no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Tu operador: Lowi
 Cita: Originalmente Escrito por SmartPhoneLover Ver Mensaje
La cosa es que ya elimine las anteriores acciones que creo fue donde surgió el problema. Ahora solo me queda el inconveniente de que cada variable global que cree en Tasker, sea en el proyecto o sección (pestañas) que sea, siempre se me duplica la variable original y Tasker crea una segunda con el contenido que debería estar en la que YO he creado.
Repito: si nos muestras una de esas tareas que te duplican la variable original tal vez podamos hacer un diagnóstico preciso, y/o podamos probar esa tarea en otros dispositivos.

Como parece que tú no estás por la labor, lo haré yo:

A1: Establecer variable [ Nombre:%Alfa A:"bla bla bla" Calcular:Apagado Añadir:Apagado ]
A2: Flash [ Texto:%Alfa1 Largo:Apagado ]

El flash me muestra el texto "%Alfa1" como era de esperar porque esa variable %Alfa1 está vacía. O sea que yo no tengo el problema que has descrito (en tu primer post), o al menos no lo tengo con esta tarea de prueba. Si quieres, copia esta tarea en tu dispositivo y miras a ver si te funciona bien como a mí... o te funciona tal y como has descrito en tu primer post.

Si no pones tareas concretas... creo que todo van a ser especulaciones e hipotésis con poca base real, y supongo que eso no es lo que quieres.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Responder Con Cita
  #9  
Viejo 31/10/16, 17:10:20
Array

[xs_avatar]
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar

No es que no quiera hacerlo, no había pensado devidamente en lo que me comentastes en el mensaje anterior, y entendí otra cosa. Aquí te dejo un ejemplo de lo que TÚ querías que te pusiese por escrito, además de unas imagenes:


Tarea de prueba:
A1: Variable Set [ Name:%Alpha To:Hola Do Maths:Off Append:Off ]
A2: Flash [ Text:%Alpha Long:Off ]
A3: List Files [ Dir:/sdcard/Tasker/Archivos/TTS/audiotemp Match: Include Hidden Files:Off Use Root:Off Variable:%AlphaOut ]
A4: Flash [ Text:%AlphaOut Long:Off ]

Te preguntarás por qué he creado las acciones de tal modo que el primer grupo (A1 y A2) almacene un valor x en la variable 'Alpha', y el otro con similar función, pero almacenando el valor en la variable 'AlphaOut'.
Bien, lo he hecho porque no sé si estoy delirando pero he notado que Tasker solo me hace eso de repetir las variables cuando utilizó la acción de listar archivos bajo un directorio (cualquier). En vez, cuando ejecuto SOLO las dos primeras acciones la variable queda correctamente llena y no se produce ninguna sub-variable de 'Alpha'.
Empienzo a pensar que el problema esta con esa función de Lista Archivos, que da la casualidad que es con la que empezé a hacer esas pruebas hoy a la mañana cuando me empezó a suceder todo lo comentado hasta ahora.


Aquí dejo unas capturas después de crear las acciones, y el contenido de sus variables posterior a su ejecuión:

Responder Con Cita
  #10  
Viejo 31/10/16, 19:06:19
Array

[xs_avatar]
WillyWeb WillyWeb no está en línea
Usuario muy activo
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
 Cita: Originalmente Escrito por SmartPhoneLover Ver Mensaje
Tarea de prueba:
A1: Variable Set [ Name:%Alpha To:Hola Do Maths:Off Append:Off ]
A2: Flash [ Text:%Alpha Long:Off ]
A3: List Files [ Dir:/sdcard/Tasker/Archivos/TTS/audiotemp Match: Include Hidden Files:Off Use Root:Off Variable:%AlphaOut ]
A4: Flash [ Text:%AlphaOut Long:Off ]
En A1 defines la variable global %Alpha y en A2 muestras con un flash su valor. El mismo que puedes comprobar en la imagen. Todo correcto.

En A3 usas "List Files" y estableces que la salida se guarde en la variable global %AlphaOut. Lo que hace esa acción es generar un array con un elemento por archivo, es decir %AlphaOut1 [o dicho de otro modo, %AlphaOut(1) que sería lo mismo] contiene el primer archivo del listado y así hasta el final. Esa acción no guarda nada en %AlphaOut, como puedes comprobar en el flash de A4 y en la imagen.

Como te he comentado antes, ese es el comportamiento normal de un array en Tasker.

¿Dónde ves el "problema"?
__________________
Miembro del equipo que promueve el [Subforo de Tasker]

Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino)
Responder Con Cita
  #11  
Viejo 31/10/16, 21:43:55
Array

[xs_avatar]
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar

Al final he decidido por reinstalar Tasker y borrar todo rastro de archivos asociados a él, y restauré todo a como antes. Pero el problema sigue ocurriendo.

Aunque ahora cabe decir que el problema ni está con tasker, ni con la vriable ni nada. Así es como funciona la función de listar archivos en tasker verdad? cada elemento que encuentra lo almacena en una array. Por lo que lo de la desinatalación y restauración ha sido tiempo perdido.
Responder Con Cita
  #12  
Viejo 31/10/16, 22:05:12
Array

[xs_avatar]
WillyWeb WillyWeb no está en línea
Usuario muy activo
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
 Cita: Originalmente Escrito por SmartPhoneLover Ver Mensaje
... Así es como funciona la función de listar archivos en tasker verdad? cada elemento que encuentra lo almacena en una array. Por lo que lo de la desinatalación y restauración ha sido tiempo perdido.
No es cada elemento lo que mete en un array. Es la lista de archivos de la carpeta que estás procesando lo que mete en un array de forma que cada archivo es un elemento de ese array.

Ya te lo he contado esta mañana aquí...

http://www.htcmania.com/showthread.php?t=1247843

La reinstalación no hacía falta, aunque nunca está de más hacer limpieza.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]

Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino)
Responder Con Cita
  #13  
Viejo 31/10/16, 23:13:08
Array

[xs_avatar]
Caravantes Caravantes no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Tu operador: Lowi
 Cita: Originalmente Escrito por Caravantes Ver Mensaje
Un array puede ser creado automáticamente como consecuencia de algunas acciones, como por ejemplo la acción SEPARAR VARIABLE (o "dividir" variable). Quizá sea que estás utilizando alguna de estas acciones y por eso aparece una sub-variable del array. Si nos muestras la tarea seguramente podamos hacer un diagnóstico más preciso.
ListarArchivos.jpg

Es la ayuda de esa acción.
Creo que con ésto hemos terminado de resolver el misterio.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Responder Con Cita
  #14  
Viejo 01/11/16, 09:06:52
Array

[xs_avatar]
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar

Si correcto Caravantes, el gran misterio queda resuelto. Bueno muchas gracias a los dos por la ayuda, y sorry por lo cabezón que puedo llegar a ser a veces
Ahora ya comprendo un poco mejor como funcionan las variables y los arrays, y la relación entre ellas ;)

Nota: estaba confundido y tenía metido en la cabeza la idea de que antes no me hacía eso Tasker, pero era porque usaba el comando shell (find /...) en vez de la opción nativa de Tasker de listar archivos. Ésta última es en la que no se me crean sub-variables por cada elemento (+ruta).
Responder Con Cita
  #15  
Viejo 01/11/16, 17:22:18
Array

[xs_avatar]
danko9696 danko9696 no está en línea
Usuario muy activo
 
Fecha de registro: ago 2012
Mensajes: 2,371
Modelo de smartphone: Mate 8
Tu operador: Yoigo
El tema es que Tasker no usa arrays propiamente dichos sino pseudoarrays, por eso lo mejor es usar con ellos siempre variables locales, nunca globales. Y para guardar resultados a nivel global hacer antes un join usando algún caracter "raro" como separador, de modo que todo quede en una única variable global. Luego para trabajar con ellos nada más empezar haces un split hacia un array local.

Y esto es con un solo nivel. Usando la misma técnica puedes almacenar varios niveles usando más de un separador en una única variable global.

Así se obtiene más consistencia y evitas variables descontroladas que a lo mejor por usar para algo muy puntual has olvidado vaciar antes de terminar la tarea.
Responder Con Cita
Los siguientes 2 usuarios han agradecido a danko9696 su comentario:
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Otro software para Android > Tasker



Hora actual: 18:48:20 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /