GETASTERCOORD - Besoin de déclarer la variable Err en amont

L'utilisation et la création des scripts.
Répondre
Marc DELDEM
Messages : 1020
Enregistré le : 20 juin 2009, 01:01

GETASTERCOORD - Besoin de déclarer la variable Err en amont

Message par Marc DELDEM » 19 mars 2020, 12:28

Je suis tombé sur un bug dans la fonction GETASTERCOORD:

Le prototype actuel (Prism 10.3.66.510) de la fonction est le suivant:

Code : Tout sélectionner

GETASTERCOORD Objet$ DateJJ Latitude Longitude Altitude Alpha2000 Delta2000 SpeedRA SpeedDEC SpeedTotal ApproxMagn GeoDistance Err
Err est un code de résultat retourné par la fonction, on n'a donc pas besoin de déclarer la variable avant l'appel de la fonction.
Seulement si le nom de l'astéroïde que l'on donne en entrée n'est pas trouvé par la fonction, le script PLANTE si on n'a pas déclaré la variable Err en amont.

Version 1 du script qui plante:

Code : Tout sélectionner

ENCODEDATETIME 2020 3 18 23 59 0 0 Date
CONVERTDATETOJULIAN Date JJDate
Latitude=43.692637*TORAD
Longitude=5.077734*TORAD
Altitude=70

REM TEST - Le nom contient volontairement un espace à la fin pour faire echouer la fonction GETASTERCOORD
AsterName$="1999DR3 "

REM si on déclare cette variable alors cela fonctionne. Si on ne déclare pas la variable le script plante
REM Err=TRUE

REM Recherche de l'astéroïde dans l'image
GETASTERCOORD AsterName$ JJDate Latitude Longitude Altitude AlphaAster DeltaAster SpeedRA SpeedDEC SpeedComb ApproxMagAster GeoDistance Err
IF Err<>0 THEN
	PRINT "Echec lors de la recherche de la position de l'astéroïde"	
ELSE
	STR_RAD_TO_RA AlphaAster RA_H$ RA_M$ RA_S$
	STR_RAD_TO_DEC DeltaAster DE_D$ DE_M$ DE_S$
	PRINT "Astéroide: " AsterName$ " Alpha:" RA_H$ ":" RA_M$ ":" RA_S$ ", Delta:" DE_D$ ":" DE_M$ ":" DE_S$
ENDIF
=> On a l'erreur suivante:
Le script s'est arrêté à cause d'une erreur fatale : Ligne : @ 15 -> "IF Err<>0 THEN ERREUR : Variable "ERR" non reconnue ou non initialisée! -> Comparaison incorrecte !
Script terminé ...
Version 2 du script qui ne plante plus (on déclare la variable Err):

Code : Tout sélectionner

ENCODEDATETIME 2020 3 18 23 59 0 0 Date
CONVERTDATETOJULIAN Date JJDate
Latitude=43.692637*TORAD
Longitude=5.077734*TORAD
Altitude=70

REM TEST - Le nom contient volontairement un espace à la fin pour faire echouer la fonction GETASTERCOORD
AsterName$="1999DR3 "

REM si on déclare cette variable alors cela fonctionne. Si on ne déclare pas la variable le script plante
Err=TRUE

REM Recherche de l'astéroïde dans l'image
GETASTERCOORD AsterName$ JJDate Latitude Longitude Altitude AlphaAster DeltaAster SpeedRA SpeedDEC SpeedComb ApproxMagAster GeoDistance Err
IF Err<>0 THEN
	PRINT "Echec lors de la recherche de la position de l'astéroïde"	
ELSE
	STR_RAD_TO_RA AlphaAster RA_H$ RA_M$ RA_S$
	STR_RAD_TO_DEC DeltaAster DE_D$ DE_M$ DE_S$
	PRINT "Astéroide: " AsterName$ " Alpha:" RA_H$ ":" RA_M$ ":" RA_S$ ", Delta:" DE_D$ ":" DE_M$ ":" DE_S$
ENDIF
=> Le script ne plante pas et il affiche:
Echec lors de la recherche de la position de l'astéroïde
Script terminé ...
Marc

Cyril Cavadore
Messages : 3917
Enregistré le : 18 juin 2009, 22:41
Localisation : 42

Re: GETASTERCOORD - Besoin de déclarer la variable Err en amont

Message par Cyril Cavadore » 19 mars 2020, 22:23

"Echec lors de la recherche de la position de l'astéroïde"

Et ce a toutes les recherches ?
Cyril Cavadore, ALCOR-SYSTEM, Auteur de PRISM
http://www.alcor-system.com

Pour reporter vos problème, la marche à suivre est ici
viewtopic.php?f=7&t=1403

Marc DELDEM
Messages : 1020
Enregistré le : 20 juin 2009, 01:01

Re: GETASTERCOORD - Besoin de déclarer la variable Err en amont

Message par Marc DELDEM » 20 mars 2020, 09:30

OUI du moment que le nom de l'astéroïde n'est pas trouvé.

Marc

Répondre