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

Respuesta
 
Herramientas
  #1  
Viejo 02/07/18, 11:00:49
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
interrogacion Ejercicios de verano (sacar los números de una frase)

La amiga Viki sigue con sus preguntas del millón...
Uso AutoVoice para capturar una frase que contiene uno o dos números. La frase puede de esta forma ...

bla bla 2 bla bla 5 bla

... o de esta otra ...

bla bla 3 bla bla

En el primer caso quiero este resultado ...

%primero=2
%segundo=5

Y en el otro caso quiero esto ...

%primero=3
%segundo=0

*Aclaro que los números no siempre son esos.
Como supongo que no todo el mundo tiene/usa AutoVoice vamos a cambiar un poco la primera premisa y partiremos de estas dos cadenas de texto ...

%textouno=si tienes 5 y te quito 3 te quedan
%textodos=no tienes valor a quitarme 3

Venga que esta es muy fácil.
__________________
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
Gracias de parte de:


  #2  
Viejo 04/07/18, 07:56:00
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
¿Nadie tiene una idea para solucionar esto?

__________________
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 04/07/18, 18:29:54
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 WillyWeb Ver Mensaje
¿Nadie tiene una idea para solucionar esto?
No uso Autovoice.
Desde el punto de vista de Tasker, se me ocurre empezar estableciendo %primero=0 y %segundo=0. Luego hacer un blucle recorriendo los caracteres de la frase y comprobando la coincidencia del carácter con alguno de los elementos 0/1/2/3/4/5/6/7/8/9; en caso afirmativo...
A) comprobar si la variable %primero sigue a cero; en ese caso o guardar ahí el carácter encontrado, en caso contrario guardarlo en %segundo.
B) hacer un push para meter ese carácter en un array; al terminar pasar los valores del array a %primero y %segundo (solo los valores que hayan sido establecidos en el array).
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Responder Con Cita
Gracias de parte de:
  #4  
Viejo 04/07/18, 19:08:03
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
Otra idea en esa línea...

-Convertir la frase en un array (separando por los espacios)
-Recorrer el array con un bucle comprobando si el elemento es un número*
-Si es un número usar tus soluciones A o B

*Mejor eso que comparar con caracteres. De esa forma cubres la posibilidad de que el número tenga más de un dígito.

Todo esto usando acciones de Tasker, aunque en este caso creo la mejor solución es tirar de regex.
__________________
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
  #5  
Viejo 04/07/18, 19:25:20
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
Por los ejemplos que habías puesto, yo había deducido que los números solo tendrían un dígito.
Un array con separación por espacios abrevia bastante, pero no lo contemplé porque me pareció que en algunas ocasiones puede ocurrir que un número no esté rodeado de espacios.
%textouno=si tienes 5, y te quito 3... te quedan
En algunos problemas, ciertos detalles de este tipo pueden determinar cuál es la solución adecuada.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Responder Con Cita
  #6  
Viejo 04/07/18, 19:55:41
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
Pues tienes razón con lo de la coma.

La verdad es que la Taskera no comentaba nada de eso.
__________________
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 05/07/18, 11:05:44
Array

[xs_avatar]
GraphicAdventure GraphicAdventure no está en línea
Miembro del foro
 
Fecha de registro: oct 2013
Localización: España
Mensajes: 277
Modelo de smartphone: S3 Mini I8190N
Tu operador: Movistar
En el caso de AutoVoice eso no ocurre a no ser que digas "coma" y se añade a la frase.

Última edición por GraphicAdventure Día 05/07/18 a las 11:08:01.
Responder Con Cita
Gracias de parte de:
  #8  
Viejo 05/07/18, 11:24:49
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 Caravantes Ver Mensaje
Un array con separación por espacios abrevia bastante, pero no lo contemplé porque me pareció que en algunas ocasiones puede ocurrir que un número no esté rodeado de espacios.
 Cita: Originalmente Escrito por GraphicAdventure Ver Mensaje
En el caso de AutoVoice eso no ocurre a no ser que digas "coma" y se añade a la frase.
Aclarado. Caravantes, al ejercicio.
__________________
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
  #9  
Viejo 05/07/18, 23:27: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
He puesto al principio cuatro frases para probarlas. La que juega es la que está colocada en la última posición. Cambiándolas de orden puedo probar las otras.

Código:
	A1: Establecer variable [ Nombre:%texto A:si tienes 5 y te quito 3 te quedan Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] 
	A2: Establecer variable [ Nombre:%texto A:no tienes valor a quitarme 3 Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] 
	A3: Establecer variable [ Nombre:%texto A:tengo 30 y 50 y 70 y más Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] 
	A4: Establecer variable [ Nombre:%texto A:No tengo nada Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] 
	A5: Establecer variable [ Nombre:%texto A:Tengo 0 pero debo 25 Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] 
	A6: Establece Array [ Matriz de Variables (array):%txtarray Values:%texto Separador: ] 
	A7: For [ Variable:%item Ítems:%txtarray() ] 
	  A8: Si (if) [ %item > 0 | %item ~ 0 ]
	    A9: Si (if) [ %primero No ajust. ]
	      A10: Establecer variable [ Nombre:%primero A:%item Recurse Variables:Apagado Calcular:Encendido Añadir:Apagado ] 
	    A11: Else Si (if) [ %segundo No ajust. ]
	      A12: Establecer variable [ Nombre:%segundo A:%item Recurse Variables:Apagado Calcular:Encendido Añadir:Apagado ] 
	      A13: Ir a acción [ Tipo:Etiqueta Acción Número:1 Etiqueta:Exit ] 
	    A14: Fin si (End if) 
	  A15: Fin si (End if) 
	A16: End For 
	A17: Establecer variable [ Nombre:%primero A:0 Recurse Variables:Apagado Calcular:Encendido Añadir:Apagado ] Si (if) [ %primero No ajust. ]
	A18: Establecer variable [ Nombre:%segundo A:0 Recurse Variables:Apagado Calcular:Encendido Añadir:Apagado ] Si (if) [ %segundo No ajust. ]
	<Exit>
	A19: Flash [ Texto:%txtarray()
                                    %primero
                                    %segundo Largo:Apagado ]
Los resultados son

%texto = si tienes 5 y te quito 3 te quedan
%primero=5
%segund0=3

%texto = no tienes valor a quitarme 3
%primero=3
%segund0=0

%texto = tengo 30 y 50 y 70 y más
%primero=30
%segund0=50

%texto = Tengo 0 pero debo 25
%primero=0
%segund0=25

Es aceptable? Un aprobadillo, espero.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Responder Con Cita
  #10  
Viejo 06/07/18, 08:43:15
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 Caravantes Ver Mensaje
Es aceptable? Un aprobadillo, espero.
Traducción literal del proceso mental ...

Y una vez que tenemos un algoritmo que funciona nos podemos entretener en afinarlo. Con un poco de práctica lo haces/afinas al vuelo, pero esa es la forma de hacerlo. Al manos es la que yo he seguido siempre.

__________________
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
Respuesta

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



Hora actual: 16:33:25 (GMT +2)



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

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