|
Bueno, primero de todo agradecer vuestros intentos de ayuda...
Voy a intentar fijar más claramente el problema (que no és funcional sino sólo de visualización al mostrar los resultados en pantalla):
Se trata de una tarea para obtener la previsión del tiempo en función del lugar donde estés, en España, hecha a partir de la versión "clásica" que se publicó hace tiempo en el foro y que he ido mejorando compactando acciones usandó código JS e introduciendo consultas a una base de datos SQL para obtener los códigos INE a partir del código postal sacado con un HTTPget de la web de Google. Con el código INE y mediante un nuevo HTTPget de la web de AEMET obtengo las previsiones del tiempo para hoy y para mañana y preparo tres variables: %result_mati, %result_tarda y %result_vespre que contienen el texto que me aparecerá en pantalla y que está preparado para ser leído con una acción Decir.
(Para obtener las de mañana hago un nuevo barrido del resultado %HTTPD cortando en lugar de <dia fecha="%hoy"> en </dia> que es donde empieza la prevision de mañana y se genera otro juego de resultados)
El contenido de cada una de las tres variables contiene la previsión correspondiente al período. Por ejemplo, para la mañana, %result_mati contiene las previsiones del período de horas 06 a 12 y queda así: "Mañana: estado del cielo %cielom. Temperatura entre %tempm_min y %tempm_max grados. Viento de %ventm kilómetros por hora del %dirm. Probabilidad de lluvia del %lluviam %"
Monto las cadenas igualmente para la tarde y para la noche.
Como sabreis AEMET va vaciando de contenido los datos de horas cubiertas. Es decir que las variables parciales %cielom, %tempm_min, %tempm_max, %ventm, %dirm y %lluviam quedan vacias más o menos a partir del mediodia y se leerian como "tanto por ciento %cielom" etc.
Entonces, para poder componer el texto que se mostrará (y se leerá a voluntad mediante un botón de la escena) pongo condiciones IF para las previsiones para la mañana y para la tarde:
IF %hora < 12 | %Dema = 1
Establecer variable %result_mati A:Mañana: estado del cielo %cielom. Temperatura entre %tempm_min y %tempm_max grados. Viento de %ventm kilómetros por hora del %dirm. Probabilidad de lluvia del %lluviam % (Decir lee % como "tanto por ciento")
Else
Establecer variable %result_mati A: (un espacio, ya que no puedo dejar la asignación vacia
EndIf
IF %hora < 18 | %Dema = 1
Establecer variable %result_tarda A:Tarde:estado del cielo %cielot. Temperatura entre %tempt_min y %tempt_max... etc.
Else
Establecer variable %result_tarda A: (un espacio, ya que no puedo dejar la asignación vacia
EndIf
(%hora és una extracción con Separar Variable de %TIME para obtener sólo la hora
y %Dema es una variable global que hace que se muestren las previsiones para hoy o para mañana cambiando con un boton de la escena su valor a 1, en cuyo caso se mostrarán todas independientemente de la hora)
Al final del proceso compongo una variable %resultat_dia que contiene %result_mati %result_tarda %result_vespre en lineas separadas y se muestra en pantalla.
El problema aparece cuando no hay resultados de la mañana porqué son más de las 12 del mediodia: %result_mati = " " (un espacio en blanco por acción del Else...). Esto causa que no se muestre en pantalla nada para la mañana y aparezcan sólo los resultados de la tarde y de la noche. Por efecto de aquel espacio en blanco el texto de la previsión para la tarde queda un espacio hacia la derecha.
Si sólo hay resultado para la noche (a partir de las 18) entonces me aparecen dos espacios en blanco al principio de la linea...
----
Al final he resuelto el tema poniendo en las definiciones de %result_mati y %result_tarda una linea en blanco al final del texto y componiendo la variable %resultat_dia así: %result_mati%result_tarda%result_vespre. Los resultados se desplazan una línea hacia abajo, pero como sobra espacio (hay una o dos previsiones menos...) "no problem".
Última edición por cace0353 Día 02/03/17 a las 23:13:32
|