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

Respuesta
 
Herramientas
  #1  
Viejo 09/07/13, 16:34:06
Array

[xs_avatar]
guglegap guglegap no está en línea
Usuario poco activo
 
Fecha de registro: nov 2012
Mensajes: 24
Tu operador: Movistar

Tasker te avise del tiempo que le queda al bus

Hola, ví hace tiempo, un ejemplo de tasker que te decía el tiempo que hacía en tu ciudad mi pregunta es si es posible con tasker hacer que me avise de cuánto le queda al autobús, viendo en la pagina web los minutos que faltan (se guardarán en una variable) y luego me diga esos minutos.
Saludos.
Responder Con Cita


  #2  
Viejo 09/07/13, 17:54:19
Array

[xs_avatar]
mlesir mlesir no está en línea
Usuario muy activo
 
Fecha de registro: abr 2012
Mensajes: 2,263
Modelo de smartphone: OnePlus One,BQ Edison1, GoogleChrome,
Tu operador: Pepephone
Pues supongo que si lo que ponga la Web lo puedes meter en una variable se puede. Este tema no lo dominó mucho pero yo probaría a cambiar la url en el mismo perfil q del tiempo que mencionas y ver q pasa. Que Web te dice ese dato y para que ciudad vale?
La idea q has tenido es muy buena por cierto.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
Responder Con Cita
  #3  
Viejo 09/07/13, 18:17:11
Array

[xs_avatar]
guglegap guglegap no está en línea
Usuario poco activo
 
Fecha de registro: nov 2012
Mensajes: 24
Tu operador: Movistar

Se me ocurrió por ese ejemplo del tiempo y por las aplicaciones de bus que te avisan de cuánto tiempo le queda, que dicen los desarrolladores que puede fallar ya que dependen del estado de la página web (supongo que sacarán alguna variable o algo y lo pondrán en su app) en mi caso, es para los autobuses de Málaga por ejemplo esta línea:
http://www.emtmalaga.es/emt-mobile/i...?codParada=201

Última edición por guglegap Día 09/07/13 a las 18:21:47.
Responder Con Cita
  #4  
Viejo 10/07/13, 00:02:51
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 guglegap Ver Mensaje
en mi caso, es para los autobuses de Málaga por ejemplo esta línea: http://www.emtmalaga.es/emt-mobile/i...?codParada=201
Gugle, esa misma página ya te dice cuánto tiempo falta para que el autobús llegue a la pardada. Acabo de ponerla en mi smartphone y se ve bastante bien. Creo que lo más lógico es que metas esa página en los favoritos de tu smartphone para poder consultarla fácilmente cuando quieras saber el tiempo que falta para la llegada del bus. Unos minutos después de que hayas abierto la página, en la parte superior derecha verás un icono con una flecha circular que sirve para actualizar la información de la página, y así obtienes un nuevo cálculo del tiempo que tardará el autobús.

Creo que en este caso, utilizar Tasker es como matar moscas a cañonazos, algo desproporcionado por ser más complicado, lo cual siempre conlleva más riesgo de errores y problemas. Tasker puede consultar esa página y obtener el dato de los minutos que faltan, pero nunca va a mejorar la calidad o la precisión de esa información: si la información de partida es incorrecta o imprecisa, Tasker reproducirá esos errores porque no tiene otros medios para conocer el dato verdadero.

Ante una situación así, creo que el uso de Tasker solo estaría justificado por circunstancias excepcionales. Por ejemplo, el caso de un ciego que quiera escuchar cada cinco minutos cuánto falta para la llegada del bus... evitando escuchar el resto de datos que hay en la página y que siempre son los mismos. Pero en un caso normal creo que usar Tasker en esta situación es complicarse la vida sin sentido.

Otra cosa es que quieras hacerlo por pura diversión (como un reto) o como ejercicio para aprender a manejar Tasker. En ese caso, adelante con ello, contarías con mi aplauso. Y te recomiendo que comiences leyendo la lección 4 que está dedicada precisamente a este tema.

Tasker para principiantes. Lección 4. El procesamiento de datos en variables. Obtención de datos externos y su tratamiento para extraer la información que necesitamos.
http://www.htcmania.com/showthread.php?p=9099161
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Responder Con Cita
  #5  
Viejo 10/07/13, 14:48:28
Array

[xs_avatar]
maid450 maid450 no está en línea
Miembro del foro
 
Fecha de registro: sep 2009
Localización: Valencia
Mensajes: 450
Modelo de smartphone: Nexus 5 / Nexus 7
Tu operador: Yoigo
 Cita: Originalmente Escrito por Caravantes Ver Mensaje
Creo que en este caso, utilizar Tasker es como matar moscas a cañonazos, algo desproporcionado por ser más complicado, lo cual siempre conlleva más riesgo de errores y problemas. Tasker puede consultar esa página y obtener el dato de los minutos que faltan, pero nunca va a mejorar la calidad o la precisión de esa información: si la información de partida es incorrecta o imprecisa, Tasker reproducirá esos errores porque no tiene otros medios para conocer el dato verdadero.
Pues a mi me parece una gran idea, y con tasker por medio se pueden conseguir cosas bastante interesantes.
Está claro que la información de partida puede no ser del todo precisa, pero siendo que es la web oficial de la empresa de transportes es lo más fiable que tienes...

La idea general es esta: lanzas un HTTP GET a la URL de la linea que quieres, guardas el resultado en una variable y con una expresión regular sacas el dato que te interesa.

He estado trasteando un poquito y la mayor dificultad inicial que he visto es en las paradas con múltiples lineas, pero con una expresión regular algo compleja e indicando la linea que interesa en la propia expresión he conseguido resolverlo.
El siguiente problema que he visto y aún no veo claro como resolver es en los casos en que consultas el tiempo que falta en una linea que no pone los minutos (esto creo que pasa cuando falta mucho tiempo, por ejemplo los nocturnos).

Así pues, la tarea no es perfecta ni a prueba de errores pero funciona y es un comienzo, pego la descripción.
%numparada y %linea son 2 variables que habría que establecer al numero de parada y linea a consultar, el resultado (los minutos que faltan) se quedan almacenados en la variable %html

EMT MALAGA (112)
A1: HTTP Get [ Server:Port:emtmalaga.es Path:emt-mobile/informacionParada.html Attributes:codParada=%numparada Cookies: Timeout:10 Mime Type: Output File: ]
A2: Variable Set [ Name:%html To:%HTTPD Do Maths:Off Append:Off ]
A3: Variable Search Replace [ Variable:%html Search: (?s).*?<span class="linea">.*?>%linea<.*?<span class="minutos\d?">\s+.*?(\d+).*?\s+</span>.* Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:$1 ]
Responder Con Cita
Los siguientes 3 usuarios han agradecido a maid450 su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]
  #6  
Viejo 10/07/13, 16:18:01
Array

[xs_avatar]
guglegap guglegap no está en línea
Usuario poco activo
 
Fecha de registro: nov 2012
Mensajes: 24
Tu operador: Movistar

Yo he conseguido hacerlo pero de una forma chapuza (leyendo el código fuente y quedándome con la parte que me interesa) y sólo para una parada determinada, con la función separar variable y con la ayuda de un ejemplo similar para leer las noticias que venía en pocketablet:

Así es como lo hice yo, es una chapuza, pero me sirve para la parada interesada:

A1: HTTP Get [ Servidor:Puerto:http://www.emtmalaga.es Ruta:emt-mobile/informacionParada.html?codParada=1367 Atributos: Cookies: Cuenta atrás:30 Tipo Mime: Archivo de salida:bus.txt ]
A2: Leer Archivo [ Archivo:bus.txt A la variable:%bus ]
A3: Separar variable [ Nombre:%bus Separador:<li> Eliminar base:Apagado ]
A4: Separar variable [ Nombre:%bus2 Separador:/span> Eliminar base:Apagado ]
A5: Separar variable [ Nombre:%bus23 Separador:"> Eliminar base:Apagado ]
A6: Separar variable [ Nombre:%bus232 Separador:. Eliminar base:Apagado ]
A7: Separar variable [ Nombre:%bus2321 Separador:min Eliminar base:Apagado ]
A8: Establecer variable [ Nombre:%Bus A:%bus23211 Calcular:Apagado Añadir:Apagado ]
A9: Decir [ Texto:Faltan %bus23211 minutos Motor: Voz:com.svox.pico:spa-ESP Stream:3 Tono:5 Velocidad:5 Continuar tarea inmediatamente:Apagado ]

Voy a intentarlo hacer como tú dices maid450, que lo veo de una forma más general y ordenada.
Responder Con Cita
Gracias de parte de:
  #7  
Viejo 10/07/13, 16:53:21
Array

[xs_avatar]
guglegap guglegap no está en línea
Usuario poco activo
 
Fecha de registro: nov 2012
Mensajes: 24
Tu operador: Movistar

Funciona de maravilla maid450 para cualquier parada y línea sólo falla para eso que dices de si no sale el tiempo pero vaya que está perfecto muchas gracias!!
Responder Con Cita
Gracias de parte de:
  #8  
Viejo 18/07/13, 01:39:23
Array

[xs_avatar]
ATaskREADOS ATaskREADOS no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Mensajes: 180
Tu operador: Otra

Subido al recopilatorio.
Maid y Guglegap muchas gracias y enhorabuena, habeis sido recompensado con el máximo galardón de este subforo: la copa virtual


Fdo: Mlesir
__________________
ATaskREADOS somos el equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
Para cualquier asunto relacionado con el foro, puedes escribirnos a [email protected]

Última edición por ATaskREADOS Día 18/07/13 a las 08:37:27.
Responder Con Cita
  #9  
Viejo 14/11/13, 21:47:05
Array

[xs_avatar]
darkopro darkopro no está en línea
Usuario muy activo
 
Fecha de registro: mar 2010
Mensajes: 3,249
Modelo de smartphone: Galaxy S3
Tu operador: Vodafone
Estoy intentando portar esta tarea para Valencia, he logrado sintetizar el código hasta la parte realmente importante pero no tengo conocimientos suficientes para saber como instar el número de autobús y de parada, posteo el código por si alguien me puede echar un cable:

src="/ciudadano/images/portada/conoce_title.png" alt="Conoce cuándo llega tu autobús"><div class="subtitle"><p>Elige parada</p></div><div id="nombre_paradaTiempo" name="nombre_parada"><label for="parada_nombre"><input type="text" name="parada_nombre" value="Número o nombre" onclick="this.value=''" id="parada_nombre" onkeyup="searchSuggest(event);" autocomplete="off"/></label><div id="search_suggest"></div></div><div id="linea"><p for="linea">Línea</p></div><div id="num_linea" name="num_linea"><label for="linea_numero"><input type="text" id="linea_numero" name="linea_numero" value=""></label></div><div id="blancoTiempo"><p for="todas">En blanco, TODAS</p></div><div id="adaptados"><label for="solo_adaptados"><input type="checkbox" id="solo_adaptados" name="solo_adaptados" ></label></div><div id="textoAdaptados"><p for="adaptados">Sólo adaptados</p></div><div id="botonera"><div id="btnLeft"></div><div id="btnCenter" onclick="valida('es' , 'Anonimo');"><span><p for="resultados"> Ver Resultados</p></span></div><div id="btnRight"></div></div><div id="resultadoTiempo"></div> </div></div><div id="contenedorAyudaTiempo"><a href="/ciudadano/index.php?option=com_content&view=article&id=276%3 Aayuda-ggestiona-tu-tiempo&catid=80&lang=es"><img alt="Ayuda" src="/ciudadano/images/stories/ayuda.png"/></a><a class="ayudaTiempo" href="/ciudadano/index.php?option=com_content&view=article&id=280&l ang=es"> | WIDGET</a><a class="ayudaTiempo" href="/ciudadano/index.php?option=com_content&view=article&id=273%3 Aotras-formas-ggestiona-tu-tiempo&catid=80&lang=es">Otras formas SMS 217712 </a></div></div>

La dirección web de autobuses de Valencia es:
http://www.emtvalencia.es/ciudadano/index.php
Responder Con Cita
  #10  
Viejo 15/11/13, 11:18:33
Array

[xs_avatar]
maid450 maid450 no está en línea
Miembro del foro
 
Fecha de registro: sep 2009
Localización: Valencia
Mensajes: 450
Modelo de smartphone: Nexus 5 / Nexus 7
Tu operador: Yoigo
Pues yo también soy de Valencia, así que despues de ayudar a guglegap se me ocurrió intentar sacarlo para los buses de aquí, y conseguí una tarea que funciona aunque no está terminada ni pulida, esta es la descripción:

Código:
EMT_Valencia (86)
	A1: Variable Set [ Name:%par1 To:1272 Do Maths:Off Append:Off ] If [ %par1 ! Set ]
	A2: Variable Set [ Name:%par2 To:2 Do Maths:Off Append:Off ] If [ %par2 ! Set ]
	A3: HTTP Post [ Server:Port:movil.emtvalencia.es Path:mod_tiempo/busca_parada.php Data / File:parada=%par1
linea=%par2
adaptados=0
idioma=es
usuario=movilemt Cookies: Timeout:10 Content Type:application/x-www-form-urlencoded Output File:emt.txt ] 
	A4: Read File [ File:emt.txt To Var:%html ] 
	A5: Variable Search Replace [ Variable:%html Search:(?<=<span  class="llegadaHome">&nbsp;&nbsp;).*?(\d*|Pr&oacute;ximo).*?(?=</span>)  Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches  In:%result Replace Matches:Off Replace With: ] 
 	A6: JavaScriptlet [ Code:for(var i=0;i<result.length;i++) {
  flash(result[i]);
} Libraries: Auto Exit:On Timeout (Seconds):45 ] 
	A7: Delete File [ File:emt.txt Shred Level:0 Use Root:Off ]
Las 2 primeras acciones ponen en las variables %par1 y %par2 el numero de parada y de linea respectivamente si las variables no están definidas (esto es porque la idea es llamar a esta tarea como una subtarea), puedes poner aqui las que te interesen o llamar como subtarea pasándole los valores que quieras.
Las acciones 3 y 4 hacen la petición HTTP de la página, guardan el resultado en un fichero y de ahí a la variable %html.
La acción 5 hace el trabajo sucio de extraer los datos y guardarlos en la variable %result
La acción 6 es un pequeño javascript que simplement recorre %result y muestra en un flash los valores, esto se puede hacer con una acción for de tasker...
La acción 7 finalmente borra el archivo con el resultado de la petición HTTP, para no dejar basurilla.
Faltaría hacer algo util con los resultados, pero empecé entonces a trabajar en una versión mejorada que no necesita guardar un fichero temporal y hace una petición que devuelve una página más pequeña (consume menos datos de nuestra tarifa) pero no conseguí hacerlo funcionar del todo y lo dejé abandonado, este post me ha reabierto la curiosidad por el tema así que igual consigo acabarlo y publico aquí la versión mejorada si consigo hacerla funcionar
Responder Con Cita
Gracias de parte de:
  #11  
Viejo 15/11/13, 12:32:36
Array

[xs_avatar]
sowed sowed no está en línea
Usuario muy activo
· Votos compra/venta: (10)
 
Fecha de registro: nov 2008
Localización: Valencia
Mensajes: 4,965
Modelo de smartphone: S20 FE
Tu operador: Vodafone
Muy interesante... También soyde Valencia.
si tengo tiempo miraré a ver como se hace, no tenía ni idea de estas posibilidades. A ver si puedo mirarlo también para el metro.
Tengo un smartwatch y molaria que me mandase una notificacion con el tiempo restante al reloj.
__________________
Responder Con Cita
  #12  
Viejo 15/11/13, 17:55:47
Array

[xs_avatar]
darkopro darkopro no está en línea
Usuario muy activo
 
Fecha de registro: mar 2010
Mensajes: 3,249
Modelo de smartphone: Galaxy S3
Tu operador: Vodafone
 Cita: Originalmente Escrito por maid450 Ver Mensaje
A5: Matches:Off Replace With: ]
Mil gracias maid, esto es un poco raro?
De todas formas no me funciona, ni poniendo replace maches on, replace with:]
Me esperaré a ver si el pique te llega para sacar la nueva tarea jejeje
Responder Con Cita
  #13  
Viejo 17/11/13, 12:36:22
Array

[xs_avatar]
maid450 maid450 no está en línea
Miembro del foro
 
Fecha de registro: sep 2009
Localización: Valencia
Mensajes: 450
Modelo de smartphone: Nexus 5 / Nexus 7
Tu operador: Yoigo
Bueno, pues al final conseguí hacerlo funcionar
Este es el XML de la tarea.

Hay que usarlo como una subtarea para poder lanzarlo desde varias tareas sin tener que duplicar todo el código cada vez.

Habría entonces que crear una tarea aparte en la que recopilemos el numero de parada y de linea (este ultimo es opcional) como queramos (con un popup, por voz, ponerla a piñón, etc...) y pongamos la acción "Tarea -> Ejecutar tarea" llamando a la tarea esta, pasando como parámetro 1 el número de parada, parámetro 2 el número de linea (opcional), le ponemos la máxima prioridad y guardemos el resultado en una variable.
Luego en esa variable resultado tendremos los datos y en el resto de la tarea hay que extraer los datos usando las acciones de separar variable y hacer lo que queramos con ellos.

El resultado devuelto tiene este formato:
  • Para cada bus del resultado los detalles van separados por "|" y en este orden: num.linea|Destino|minutos
    • Si está a punto de llegar los minutos es 0
  • Si el resultado contiene varios buses van separados por ";"
    • Para una parada y una linea suele devolver la info de los 2 próximos buses que van a pasar
    • Si no se especifica la linea devuelve los 2 próximos buses de todas las lineas que pasan por esa parada
Por ejemplo podría devolver algo así:


64|Nou Hospital La Fe|8;2|La Malva-rosa|17;2|La Malva-rosa|25;64|Nou Hospital La Fe|25


Que es la info de 4 buses:
  • Linea 64 a Nou Hospital La Fe: 8 minutos
  • Linea 2 a La Malva-rosa: 17 minutos
  • Linea 2 a La Malva-rosa: 25 minutos
  • Linea 64 a Nou Hospital La Fe: 25 minutos
Me falta todavía manejar bien algunos casos en que la linea devuelve un error como que la han desviado o que no está operativa por algo, pero bueno, en general funciona bastante bien con los casos "normales".
Lo de hacerlo como subtarea y tener que interpretar el resultado es un poco complejo, pero es la forma que permite mayor flexibilidad para usarlo de varias maneras.

Última edición por maid450 Día 19/11/13 a las 12:45:05.
Responder Con Cita
Los siguientes 2 usuarios han agradecido a maid450 su comentario:
  #14  
Viejo 17/11/13, 12:51:29
Array

[xs_avatar]
darkopro darkopro no está en línea
Usuario muy activo
 
Fecha de registro: mar 2010
Mensajes: 3,249
Modelo de smartphone: Galaxy S3
Tu operador: Vodafone
Mil gracias maid, veo que tus piques los acabas rápido XD. Creo que haré una escena para poner los datos que salte con el gesture, eres un auténtico crack ;)
Se puede importar de alguna manera desde ahí la tarea en xml?
Se me descarga como .txt

Última edición por darkopro Día 17/11/13 a las 13:25:58.
Responder Con Cita
  #15  
Viejo 17/11/13, 13:51:39
Array

[xs_avatar]
maid450 maid450 no está en línea
Miembro del foro
 
Fecha de registro: sep 2009
Localización: Valencia
Mensajes: 450
Modelo de smartphone: Nexus 5 / Nexus 7
Tu operador: Yoigo
 Cita: Originalmente Escrito por darkopro Ver Mensaje
Mil gracias maid, veo que tus piques los acabas rápido XD. Creo que haré una escena para poner los datos que salte con el gesture, eres un auténtico crack ;)
Se puede importar de alguna manera desde ahí la tarea en xml?
Se me descarga como .txt
Jeje, la verdad es que ya lo tenía casi, solo era una cosilla que no acababa de funcionar y lo acabé dejando sin encontrar el porqué, pero ya pude arreglarlo.

El txt simplemente renombralo a .xml, lo dejas en la carpeta Tasker/tasks y luego en tasker, en la pestaña de tareas clicas y pones "importar" y ya está.
Responder Con Cita
Los siguientes 2 usuarios han agradecido a maid450 su comentario:
  #16  
Viejo 18/11/13, 16:50:19
Array

[xs_avatar]
darkopro darkopro no está en línea
Usuario muy activo
 
Fecha de registro: mar 2010
Mensajes: 3,249
Modelo de smartphone: Galaxy S3
Tu operador: Vodafone
Maid perdona mi ignorancia de novato, en tu tarea:
-En %par1 tenemos que establecer el número de parada
-En %par2 el número de línea
Y el resultado del tiempo que falta debería aparecer en la variable %buses, no?

PD: perdona en la tarea devolver %buses tenía «parar: activado» y no me devolvía el valor
Ahora ya está todo solucionado ;)

Ahora me queda una duda, doy a separar variable %buses A: ;
Y claro lo mismo se me convierte en 2 variables (%buses1 %buses2) que en 4 o en mas.
Como hago para que tasker sepa cuantas son para luego separa esas variables usando | y luego que diga:
-La línea %buses11 con destino a %buses12 taradará %buses13 minutos.
-La línea %buses21 con destino a %buses22 tardará %buses23 minutos
Y así sucesivamente.

La otra gran cuestión sería, como como hacer para si por ejemplo %buses31 y %buses41 son iguales diga:
-La línea %buses31 con destino a %buses32 tardará %buses33 minutos y el siguiente parará dentro de %buses43

Sólo se me ocurre poniendo poniendo Si (if) %busesXX = %busesYX
Pero claro, si lo tengo que hacer con cada variable %buses en cada combinación diferente, puedo estar escribiendo código media vida, hay alguna manera de simplificar este proceso?

Última edición por darkopro Día 18/11/13 a las 17:35:01.
Responder Con Cita
  #17  
Viejo 19/11/13, 08:37:36
Array

[xs_avatar]
maid450 maid450 no está en línea
Miembro del foro
 
Fecha de registro: sep 2009
Localización: Valencia
Mensajes: 450
Modelo de smartphone: Nexus 5 / Nexus 7
Tu operador: Yoigo
Respecto a como saber cuantos buses hay, una vez divides %buses por ";" puedes utilizar un bucle for para iterar por los distintos resultados (aquí tienes un tutorial en HTCMania sobre los arrays (o matrices) en tasker y se trata también los bucles for).

Como resumen, en la acción For (Tarea -> For) pones un nombre de variable (por ejemplo %bus en este caso es lo más lógico) y en items pones %buses() (con los paréntesis) y entonces todas las acciones que pongas entre este For y el End For (que debes poner, como con el If y el End if) se ejecutarán para cada bus, hayan 2 o 15, y lo tendrás accesible como %bus.

Por ejemplo, con este resultado:
Código:
64|Nou Hospital La Fe|8;2|La Malva-rosa|17;2|La Malva-rosa|25;64|Nou Hospital La Fe|25
Despues de dividir por ; en %buses puedes hacer:

Código:
For %bus items %buses()
  flash %bus
End For
Y el flash mostrará "64|Nou Hospital La Fe|8", luego otro flash mostrará "2|La Malva-rosa|17", etc...
Así, dentro del for tendrás que hacer todas las acciones que quieras para cada bus.

Sobre la segunda cuestión, la recien salida versión de Tasker incorpora una nueva acción en Variables que es "Array Process" que te permite realizar acciones sonbre arrays, por ejemplo ordenar, con lo que si despues de dividir por ; (antes de entrar al for) teniendo una array con estas entradas por ejemplo:
  • 64|Nou Hospital La Fe|8
  • 2|La Malva-rosa|17
  • 2|La Malva-rosa|25
  • 64|Nou Hospital La Fe|25
Si lo ordenas alfabeticamente (Array Process -> Sort Alpha) quedará así:
  • 2|La Malva-rosa|17
  • 2|La Malva-rosa|25
  • 64|Nou Hospital La Fe|25
  • 64|Nou Hospital La Fe|8
Y ya en el For procesará los elementos en este orden.



Nota que para la linea 64 se pone primero el de 25 minutos que el de 8, porque alfabéticamente el 2 va antes que el 8, igual que si en una parada pasan las lineas 15 y 6 pondrá primero los de la 15 porque el 1 va antes que el 6, no se me ocurre ahora mismo como corregir esto...
Responder Con Cita
Gracias de parte de:
  #18  
Viejo 19/11/13, 11:23:26
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 maid450 Ver Mensaje
Respecto a como saber cuantos buses hay, una vez divides %buses por ";" puedes utilizar un bucle for para iterar por los distintos resultados
Hay un método más directo. Una vez has dividido %buses (usando el ";" como separador), la expresión %buses(#) contendrá el número de elementos de la matriz y se puede consultar directamente como si fuera una variable cualquiera. En la página que has apuntado viene ese y otros datos interesantes para manejar matrices.

 Cita: Originalmente Escrito por maid450 Ver Mensaje
Nota que para la linea 64 se pone primero el de 25 minutos que el de 8, porque alfabéticamente el 2 va antes que el 8, igual que si en una parada pasan las lineas 15 y 6 pondrá primero los de la 15 porque el 1 va antes que el 6, no se me ocurre ahora mismo como corregir esto...
Sugiero añadir un bucle FOR para procesar todos esos datos de minutos. Dentro del bucle, si el dato de los minutos es inferior a 10, le añadimos un cero (por delante); de esa forma, un 8 se convierte en 08. Fin del bucle For. Tras eso ya podemos ordenar alfabéticamente (acción Array Process -> Sort Alpha) y el resultado será perfecto:
  • 64|Nou Hospital La Fe|08
  • 64|Nou Hospital La Fe|25
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker

Última edición por Caravantes Día 19/11/13 a las 11:33:23.
Responder Con Cita
  #19  
Viejo 19/11/13, 12:44:19
Array

[xs_avatar]
maid450 maid450 no está en línea
Miembro del foro
 
Fecha de registro: sep 2009
Localización: Valencia
Mensajes: 450
Modelo de smartphone: Nexus 5 / Nexus 7
Tu operador: Yoigo
 Cita: Originalmente Escrito por Caravantes Ver Mensaje
Sugiero añadir un bucle FOR para procesar todos esos datos de minutos. Dentro del bucle, si el dato de los minutos es inferior a 10, le añadimos un cero (por delante); de esa forma, un 8 se convierte en 08. Fin del bucle For. Tras eso ya podemos ordenar alfabéticamente (acción Array Process -> Sort Alpha) y el resultado será perfecto
Es una buena posibilidad, pero pensándolo un poco he visto que era facil tratar esto directamente en el javascript que realiza el procesado de los datos para que devuelva los datos de los buses ya ordenados adecuadamente (por linea y por minutos faltantes).
De esa forma no hace falta añadir procesamiento extra a cada tarea que llame a esta subtarea

He actualizado el XML de la tarea principal (tambien le he cambiado el nombre), habría que borrarla y volverla a importar
Responder Con Cita
Gracias de parte de:


  #20  
Viejo 17/12/13, 10:24:13
Array

[xs_avatar]
sergiotas sergiotas no está en línea
Usuario novato en la web
 
Fecha de registro: dic 2013
Mensajes: 21
Modelo de smartphone: LG P700
Tu operador: Movistar
Saludos, me he descargado el XML,pero da un error, el siguiente, Error: No encuentro perfil ¿a que puede ser debido?, gracias.
Responder Con Cita
Respuesta

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



Hora actual: 12:04:41 (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 / 邮件联系 /