Simscript III/Dictionnaire des instructions/OPEN
L’énoncé open ouvre un fichier en entrée ou en sortie et lui affecte le numéro d’unité (qui peut être une expression arthmétique). Si l’option noerror est spécifiée, l’ouverture d’un fichier non-existant n’entraîne pas une erreur d’exécution, mais une valeur différente de 0 sera affectée à la variable ropenerr.v.
Le nom du fichier peut-être spécifié avec la chaîne de caractères Nom_Fichier. La taille de l’enregistrement peut également être spécifiée par une expression Taille_Enregistrement. Pour un fichier binaire, la taille de l’enregistrement est fixe. Pour un fichier ASCII, la taille de l’enregistrement peut être variable, et la valeur Taille_Enregistrement représente la longueur maximale de l’enregistrement. Le mot clé binary indique qu’il s’agit d’un fichier binaire. Si le nom du fichier est omis, alors le fichier ouvert doit avoir comme nom SIMUxx où xx est le numéro d’unité.
Les unités déjà prédéfinies par le système ne doivent pas être ouvertes explicitement :
Numéro d’unité Mode Nom 5 input stdin 6 output stdout 98 output stderr 99 input/output the buffer
Exemple :
preamble
define _False = 0, _True = 1 as constants
define Fichier_Existe_f as an integer function with 1 text argument
define .Unité_Entrée to mean 10
end ‘‘ preamble
function Fichier_Existe_f (Nom_Fichier)
define Nom_Fichier as text variable
define entrée_v as integer variable
‘‘ – conserver l’unité d’entrée read.v car elle est changée par l’énoncé use
entrée_v = read.v;
open unit .Unité.Entrée for input,
name is Nom_Fichier,
noerror
use .Unité_Entrée for input;
if ropenerr.v <> 0
close .Unité_Entrée;
read.v = entrée_v;
return with False;
endif;
close .Unité_Entrée;
read.v = entrée_v;
return with _True;
end ‘‘ Fichier_Existe_f