Ver Mensaje Individual
  #14  
Viejo 03/07/18, 10:28:24
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,050
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
Tenía hecha una subtarea casi desde mis inicios con Tasker y no la encontraba. Espera sólo letras en minúsculas y espacios en blanco. El que quiera otra cosa que lo añada/solucione.

Código:
sAntorchaMorse (666)
	A1: Establecer variable [ Nombre:%par1 A:sos Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] Si (if) [ %caller1 ~ ui ]
	A2: Establece Array [ Matriz de Variables (array):%morse Values:a=.-/b=-.../c=-.-./d=-../e=./f=..-./g=--./h=..../i=../j=.---/k=-.-/l=.-../m=--/n=-./o=---/p=.--./q=--.-/r=.-./s=.../t=-/u=..-/v=.  -/w=.--/x=-..-/y=-.--/z=--../ =# Separador:/ ] 
	A3: Probar Variable [ Tipo:Longitud Datos:%par1 Almacenar Resultado en:%lon ] 
	A4: For [ Variable:%ind Ítems:1:%lon ] 
	A5:   Sección de Variable [ Nombre:%par1 Desde:%ind Longitud:1 Encajar:Apagado Almacenar Resultado en:%let ] 
	A6:   Establecer variable [ Nombre:%bus A:%morse(#?%let*) Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] 
	A7:   Establece Array [ Matriz de Variables (array):%cod Values:%morse(%bus) Separador:= ] 
	A8:   Array Push [ Matriz de Variables (array):%tra Posición:%ind Valor:%cod2 Rellenar Espacios:Apagado ] 
	A9: End For 

	<punto>
	A10: Establecer variable [ Nombre:%mspun A:125 Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] 
	<raya = punto * 3>
	A11: Establecer variable [ Nombre:%msray A:%mspun*3 Recurse Variables:Apagado Calcular:Encendido Añadir:Apagado ] 
	<entre signos = punto>
	A12: Establecer variable [ Nombre:%mssig A:%mspun Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] 
	<entre letras = punto * 3 (,)>
	A13: Establecer variable [ Nombre:%mslet A:%mspun*2 Recurse Variables:Apagado Calcular:Encendido Añadir:Apagado ] 
	<entre palabras = punto * 7 (#)>
	A14: Establecer variable [ Nombre:%mspal A:%mspun*4 Recurse Variables:Apagado Calcular:Encendido Añadir:Apagado ] 

	A15: Concatenar variable [ Nombre:%tra Criterio de fusión:, Borrar partes:Apagado ]
	A16: Probar Variable [ Tipo:Longitud Datos:%tra Almacenar Resultado en:%lon ] 
	A17: For [ Variable:%ind Ítems:1:%lon ] 
	A18:   Sección de Variable [ Nombre:%tra Desde:%ind Longitud:1 Encajar:Apagado Almacenar Resultado en:%sig ] 
	A19:   Si (if) [ %sig ~ ./- ]
	A20:     Antorcha [ Establecer:Encendido ] 
	A21:     Esperar [ MS:%mspun Segundos:0 Minutos:0 Horas:0 Días:0 ] Si (if) [ %sig ~ . ]
	A22:     Esperar [ MS:%msray Segundos:0 Minutos:0 Horas:0 Días:0 ] Si (if) [ %sig ~ - ]
	A23:     Antorcha [ Establecer:Apagado ] 
	A24:     Esperar [ MS:%mssig Segundos:0 Minutos:0 Horas:0 Días:0 ] Si (if) [ %ind != %lon ]
	A25:   Else Si (if) [ %sig ~ , ]
	A26:     Esperar [ MS:%mslet Segundos:0 Minutos:0 Horas:0 Días:0 ] 
	A27:   Else Si (if) [ %sig ~ # ]
	A28:     Esperar [ MS:%mspal Segundos:0 Minutos:0 Horas:0 Días:0 ] 
	A29:   Fin si (End if) 
	A30: End For
La primera parte traduce la cadena pasada en %par1 a morse (%par1=sos para hacer pruebas).

La segunda parte define las duraciones de punto/raya y las pausas entre signos/letras/palabras. Todo está relacionado con la duración del punto (%mspun). Graduar al gusto del usuario. La pausa entre letras y palabras está ajustada teniendo en cuenta las pausas previas y/o posteriores.

La tercera parte recorre la cadena de texto de la traducción encendiendo/apagando la linterna y haciendo las pausas correspondientes a cada caso.

La tarea ya tiene su tiempo y posiblemente ahora lo haría de otra forma, pero funciona y lo mismo os vale para algo.

_EDITO_

Estoy viendo que se podrían quitar media docena de acciones tranquilamente.
__________________
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)

Última edición por WillyWeb Día 03/07/18 a las 10:58:11.
Responder Con Cita
Los siguientes 2 usuarios han agradecido a WillyWeb su comentario: