Simscript III/Dictionnaire des instructions/OPEN

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

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 lunité dentré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