Simscript III/Dictionnaire des instructions/READ AS

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche

L’énoncé read lit des valeurs selon les spécifications du format et les affecte aux variables v1, v2 …, vn nommées dans la liste sur l’unité courante d’entrée ou sur l’unité spécifiée par using :

Syntaxe :



format représente un suite de spécifications de format séparées par des virgules correspondant à une variable à lire ou à écrire. Les caractères permettant de spécifier les formats sont : I («Integer»), D (Décimal), E (Notation scientifique), A (Alphanumérique), C («Computer representation»), B («Begin column»), S («Skip column»), / («Skip record»), T (Texte). Dans le tableau qui suit, si n est entre parenthèses (), l’énoncé d’entrée/sortie doit être contrôlé par une boucle, et la spécification de format est répétée n fois en changeant d’enregistrement à chaque fois. Les formes permises sont :




n est un répétiteur correspondant au nombre de champs consécutifs,
e est une expression entière représentant la largeur du champ.
Entier (I), alpha (A), hexadécimal (C), texte (T)
  • n est un entier.
  • Il doit y avoir au moins un espace entre n et le caractère de format (I, A, C, T) et e.
  • Pour le format I, seulement des chiffres ou un signe peuvent faire partie du champ. Les espaces sont traités comme des zéros.
  • Le format C correspond à la représentation hexadécimale du nombre et les chiffres de 0 à 9, et les caractères "A" à "F" sont permis (minuscules ou majuscules).
  • Le format A correspond à une variable alphanumérique (alpha) et T correspond à une variable de type texte (text)


n est un répétiteur correspondant au nombre de champs consécutifs,
* correspond à une chaîne de caractères de longueur indéterminée.
Texte (T)
  • n est un entier
  • Il doit y avoir au moins un espace entre n et T et *.
  • Correspond à l’impression d’une chaîne de caractères de longueur indéterminée, où à la lecture, le premier caractère différent d’un espace est considéré comme un délimiteur, et la chaîne est balayée jusqu’à l’occurrence de ce caractère.
  • La longueur de la chaîne correspond au nombre de caractères entre les 2 délimiteurs, et la chaîne peut être sur plusieurs enregistrements.


e est une expression entière représentant le nombre de colonnes
Colonne (B), espacement (S)
  • Il doit y avoir au moins un espace entre le caractère de format (B, S) et e.
  • e correspond au nombre de colonnes à sauter (S) ou au nombre de colonnes où commencer (B).
  • Correspond à un nouvel enregistrement.

a et b sont des expressions arithmétiques entières spécifiant la largeur du champ et le nombre de chiffres après le point.
Réel (D), scientifique (E)
  • n est un entier
  • Il doit y avoir au moins un espace entre n et le caractère de format (D, E) et e.
  • a correspond à la largeur du champ incluant un signe, un point et l’exposant sous la forme E±xx s’il y a lieu.
''chaîne de caractères''
  • En sortie seulement, la chaîne de caractères est imprimée telle quelle.


Exemple :

read un_Hexa as /, C 8; 	‘‘Lire une valeur en hexadécimal de 8 caractères consécutifs ( 0-F)
read Matricule, Nom, Prénom as I 5, T 20, T 15, /
for each station,
do
    read  Numéro (station),             Nom (station),      Type1 (station),
          Type2 (station),              Position (station),
          Temps1_Arrêt_normal(station), Temps1_Arrêt_Min(station),
          Écoul1_Avance(station),	Temps2_Arrêt_Normal(station),
          Temps2_Arrêt_Min(station),	Écoul2_Avance(station)
          as   I 5, B 7, T 20, 2 I 5, I 8, 2 I 5,
               S 1, A 1, 2 I 5, S 1, B 68, A 1, /
loop  ‘‘ lecture des stations terminée