Entrée et sortie
En Turbo Pascal, les entrées et sorties sont intégrées selon les entrées et sorties standard, avec les procédures (entrées/sorties) et les fonctions de Turbo Pascal; vous les trouverez dans l'unité System. Les entrées et de sorties inclus l'entrée et la sortie de fichier, les périphériques, l'utilisation de l'unité Crt, l'impression et les pilotes de périphérique de fichier texte.
Procédures et fonctions d'entrée et de sortie
Nom | Description |
---|---|
Append | Ouvre un fichier texte existant pour l'ajout. |
Assign | Attribue le nom d'un fichier externe à une variable de fichier. |
BlockRead | Lit un ou plusieurs enregistrements à partir d'un fichier non typé. |
BlockWrite | Écrit un ou plusieurs enregistrements dans un fichier non typé. |
ChDir | Modifie le répertoire courant. |
Close | Ferme un fichier ouvert. |
Eof | Renvoie l'état de fin de fichier d'un fichier. |
Eoln | Renvoie l'état de fin de ligne d'un fichier texte. |
Erase | Efface un fichier externe. |
FilePos | Renvoie la position actuelle du fichier d'un fichier tapé ou non. |
FileSize | Renvoie la taille actuelle d'un fichier; non utilisé pour les fichiers texte. |
Flush | Vide la mémoire tampon d'un fichier texte de sortie. |
GetDir | Renvoie le répertoire actuel d'un lecteur spécifié. |
IOResult | Renvoie une valeur entière correspondant à l'état de la dernière fonction d'entrée/sortie exécutée. |
MkDir | Crée un sous-répertoire. |
Read | Lit une ou plusieurs valeurs d'un fichier dans une ou plusieurs variables. |
Readln | Fait ce que fait une lecture, puis passe au début de la ligne suivante dans le fichier texte. |
Rename | Renomme un fichier externe. |
Reset | Ouvre un fichier existant. |
Rewrite | Crée et ouvre un nouveau fichier. |
RmDir | Supprime un sous-répertoire vide. |
Seek | Déplace la position actuelle d'un fichier tapé ou non vers un composant spécifié. Non utilisé avec les fichiers texte. |
SeekEof | Renvoie l'état de fin de fichier d'un fichier texte. |
SeekEoln | Renvoie l'état de fin de ligne d'un fichier texte. |
SetTextBuf | Affecte un tampon d'entrée/sortie à un fichier texte. |
Truncate | Tronque un fichier tapé ou non à la position actuelle du fichier. |
Write | Écrit une ou plusieurs valeurs dans un fichier. |
Writeln | Fait la même chose qu'une écriture, puis écrit un marqueur de fin de ligne dans le fichier texte. |
Entrée et sortie de fichier
Une variable de fichier Turbo Pascal est toute variable dont le type est un type de fichier. Il existe trois classes de fichiers Turbo Pascal : typé, texte et non typé. Avant qu'une variable de fichier puisse être utilisée, elle doit être associée à un fichier externe via un appel à la procédure Assign. Un fichier externe est généralement un fichier disque nommé, mais il peut également s'agir d'un périphérique, tel que le clavier ou l'écran. Le fichier externe entrepose les informations écrites dans le fichier ou fournit les informations lues à partir du fichier. Une fois l'association avec un fichier externe établie, la variable de fichier doit être ouverte pour la préparer à l'entrée ou à la sortie. Un fichier existant peut être ouvert via la procédure de réinitialisation, et un nouveau fichier peut être créé et ouvert via la procédure Rewrite. Les fichiers texte ouverts avec Reset sont en lecture seulement et les fichiers texte ouverts avec Rewrite et Append sont en écriture seulement. Les fichiers non textuels permettent toujours à la fois la lecture et l'écriture, qu'ils aient été ouverts ou non avec Reset ou Rewrite.
Chaque fichier est une séquence linéaire de composantes, dont chacun a le type de composante (ou type d'enregistrement) du fichier. Chaque composante a un numéro de composante. Le premier composante d'un fichier est considéré comme la composante zéro. Les fichiers sont normalement accessibles de manière séquentielle; autrement dit, lorsqu'une composante est lu à l'aide de la procédure standard Read ou écrit à l'aide de la procédure standard Write, la position actuelle du fichier passe à la composante de fichier ordonné numériquement suivant. Les fichiers typés et les fichiers non typés sont également accessibles de manière aléatoire via la procédure standard Seek, déplaçant la position actuelle du fichier vers une composante spécifié. Les fonctions standard FilePos et FileSize peuvent être utilisées pour déterminer la position actuelle du fichier et la taille actuelle du fichier. Lorsqu'un programme termine le traitement d'un fichier, le fichier doit être fermé à l'aide de la procédure standard Close. Après la fermeture d'un fichier, son fichier externe associé est mis à jour. La variable de fichier peut alors être associée à un autre fichier externe.
Par défaut, tous les appels aux procédures et fonctions d'entrées/sorties standard sont automatiquement vérifiés pour les erreurs : si une erreur se produit, le programme se termine, affichant un message d'erreur d'exécution. Cette vérification automatique peut être activée et désactivée en utilisant les directives de compilation {$I+} et {$I-}. Lorsque la vérification d'entrée/sortie est désactivée, c'est-à-dire lorsqu'un appel de procédure ou de fonction est compilé dans l'état {$I-}, une erreur d'entrée/sortie ne provoque pas l'arrêt du programme. Pour vérifier le résultat d'une opération d'entrée/sortie, vous devez appeler la fonction standard IOResult à la place. Vous devez appeler la fonction IOResult pour effacer toute erreur s'étant produite, même si vous n'êtes pas intéressé par l'erreur. Si vous ne le faites pas et que {$I+} est l'état actuel, le prochain appel de fonction d'entrée/sortie échouera avec l'erreur IOResult précédente.
Fichiers texte
Les offre la possibilité d'effectuer des entrées/sorties à l'aide de variables de fichier de type standard Text. Lorsqu'un fichier texte est ouvert, le fichier externe est interprété d'une manière spéciale : il est considéré comme représentant une séquence de caractères formatés en lignes, où chaque ligne se termine par un marqueur de fin de ligne (un caractère de retour chariot, éventuellement suivi d'un caractère de saut de ligne). Pour les fichiers texte, il existe des formes spéciales de lecture et d'écriture vous permettant de lire et d'écrire des valeurs n'étant pas de type Char. Ces valeurs sont automatiquement converties vers et depuis leur représentation de caractère. Par exemple, Read(F,I), où I est une variable de type Integer, lit une séquence de chiffres, interprète cette séquence comme un entier décimal et l'entrepose dans 1. Le Turbo Pascal définit deux variables de fichier texte standard, Input et Output. La variable de fichier standard Input est un fichier en lecture seule associé au fichier d'entrée standard du système d'exploitation (généralement le clavier). La variable de fichier standard Output est un fichier en écriture seule associé au fichier de sortie standard du système d'exploitation (généralement l'affichage). L'entrée et la sortie sont automatiquement ouvertes avant le début de l'exécution d'un programme, comme si les instructions suivantes étaient exécutées :
Assign(Input,'');
Reset(Input) ;
Assign(Output,'');
Rewrite(Output);
L'entrée et la sortie sont automatiquement fermées une fois l'exécution du programme terminée. Si un programme utilise l'unité standard Crt, les entrées et sorties ne font plus référence aux fichiers d'entrée et de sortie standard. Certaines des routines d'entrées/sorties standard fonctionnant sur les fichiers texte n'ont pas besoin d'avoir une variable de fichier explicitement donnée en paramètre. Si le paramètre de fichier est omis, Input ou Output est supposé par défaut, selon que la procédure ou la fonction est orientée entrée ou sortie. Par exemple, Read(X) correspond à Read(Input,X) et Write(X) correspond à Write(Output,X). Si vous spécifiez un fichier lors de l'appel de l'une des routines d'entrée ou de sortie fonctionnant sur des fichiers texte, le fichier doit être associé à un fichier externe à l'aide de Assign et ouvert à l'aide de Reset, Rewrite ou Append. Une erreur d'exécution se produit si vous transmettez un fichier ouvert avec Reset à une procédure ou une fonction orientée sortie. De même, transmettre un fichier ouvert avec Rewrite ou Append à une procédure ou une fonction orientée entrée est une erreur.
Fichiers non typés
Les fichiers non typés sont des canaux d'entrées/sorties de bas niveau principalement utilisés pour l'accès direct à n'importe quel fichier disque, quel que soit son type et sa structure. Un fichier non typé est déclaré avec le fichier Word et rien de plus. Par exemple :
Var DataFile:File;
Pour les fichiers non typés, les procédures de réinitialisation et de réécriture permettent à un paramètre supplémentaire de spécifier la taille d'enregistrement utilisée dans les transferts de données. Pour des raisons historiques, la taille d'enregistrement par défaut est de 128 octets. Une taille d'enregistrement de 1 est la seule valeur reflétant correctement la taille exacte de n'importe quel fichier, car aucun enregistrement partiel n'est possible lorsque la taille d'enregistrement est 1. À l'exception de la lecture et de l'écriture, toutes les procédures et fonctions standard des fichiers typés sont également autorisées sur les fichiers non typés. Au lieu de Read et Write, deux procédures appelées BlockRead et BlockWrite sont utilisées pour les transferts de données à grande vitesse.