Section courante

A propos

Section administrative du site

 Langage  Elément  Tutoriel  Emulateur  Annexe  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Référence de mots réservés
Référence des procédures et des fonctions
Référence des directives de compilation
Fichiers et périphériques
Pointeurs en OSS Personal Pascal
Hatari
PCE - PC Emulator
Références des codes d'erreur du OSS Personal Pascal
Préface
Notes légal
Dictionnaire
Recherche

Fichiers et périphériques

En Pascal standard, les procédures Rewrite et Reset sont censées lier un identificateur de fichier à un fichier physique, l'ouvrir et le rendre actif. (Cet identificateur de fichier est parfois appelé variable de fichier ou pointeur de fichier, mais ces deux noms sont impropres, car ils ne peuvent être ni modifiés ni pointés.)

La procédure Rewrite est utilisée lorsque le fichier est destiné à la sortie et la réinitialisation est utilisée lorsque le fichier est destiné à l'entrée. En Pascal standard, tous les fichiers non temporaires doivent être spécifiés dans la liste des identificateurs de fichiers dans l'entête du programme. Sur les grands systèmes de lots de machines, le système d'exploitation permet à l'opérateur informatique de lier ces identificateurs de fichiers avec des périphériques ou des fichiers physiques. Le système d'exploitation TOS n'a aucun moyen normalisé d'effectuer une telle liaison de fichiers. Ainsi, comme indiqué dans la section d'entête du programme, l'OSS Personal Pascal ignore tout identificateur de fichier donné dans l'entête du fichier. Ceci est assez cohérent avec les autres Pascals de micro-ordinateur. Au lieu de cela, OSS Personal Pascal autorise un deuxième paramètre pour les procédures REWRITE et RESET, et ce deuxième paramètre est destiné à être le nom du fichier physique. Ne confondez pas l'identificateur de fichier avec le nom de fichier physique. Une déclaration comme celle-ci est parfaitement légale, bien que plus qu'un peu déroutante :

  1. Reset(InFile,'OUTPUT');

Le fichier nommé OUTPUT est présumé être un fichier disque sur l'unité de disque actif actuel, dans le répertoire actif actuel et pourrait donc être plus correctement nommé A:\WORKDIR\OUTPUT ou autre. Vous devez toujours spécifier un nom de fichier la première fois que vous utilisez Reset ou ReWrite avec un identificateur de fichier particulier dans un programme ou un sous-programme ! Cependant, une fois qu'une variable de fichier a été liée à un fichier physique, le deuxième paramètre n'est pas nécessaire pour réinitialiser ou réécrire à nouveau l'identificateur du fichier, à moins que vous ne souhaitiez le lier à un autre fichier physique. Une chose logique à faire est de réécrire un fichier temporaire, de lui donner un nom, puis de réinitialiser ce même identificateur afin de traiter les informations.

Dans la plupart des cas, le fichier physique sera un nom de fichier GEMDOS valide, incluant éventuellement le nom de l'unité de disque ou spécifiant peut-être un nom de chemin complet, mais les périphériques suivants sont également pris en charge en tant que fichiers physiques :

Périphériques Description
'CON:' Ce périphérique permet d'indiquer la console Atari ST (clavier et moniteur). Ce périphérique est valide pour l'entrée et la sortie.
'AXI:' Ce périphérique permet d'indiquer l'entrée du port auxiliaire (RS232), valide pour l'entrée uniquement.
'AXO:' Ce périphérique permet d'indiquer la sortie du port auxiliaire (RS232), valide pour la sortie uniquement.
'LST:' Ce périphérique permet d'indiquer un périphérique de liste, soit l'imprimante. Ce périphérique est valide pour la sortie uniquement.
'PRN:' Ce périphérique est identique à 'LST:'.
'NUL:' Ce périphérique permet d'indiquer un périphérique nul rejetant simplement toutes les sorties ; valable pour la sortie uniquement.

Comme exemple spécifique, considérons cette méthode d'envoi de données à une imprimante :

  1. Program PrintDemo;
  2. Var
  3.  Out:TEXT;
  4.  
  5. BEGIN
  6.  ReWrite(Out,'LST:');
  7.  WriteLn('C''est ligne doit aller vers l''écran');
  8.  WriteLn(Out,'Celles-ci vont à l''imprimante');
  9. END.

Notez que le nom du périphérique doit inclure les deux points terminés. Si nous avions codé 'LST' à la place, nous aurions envoyé la ligne dans un fichier disque nommé LST dans le répertoire par défaut actuel. Le nom de fichier peut être donné sous la forme d'une chaîne de caractères constante, d'une variable de chaîne de caractères ou d'un tableau de caractères condensés.

Le Turbo Pascal utilise deux appels de procédure pour accomplir ce que fait OSS Personal Pascal avec ses versions modifiées de ReWrite et Reset. L'équivalent d'OSS Personal Pascal de :

  1. Reset(Test,'A:TEMPDATA');

est en Turbo Pascal :

  1. Assign(Test,'A:TEMPDATA');
  2. Reset(Test);

Redirection de sortie d'écran

Chaque fois que vous utilisez un appel Write ou WriteLn, les données que vous souhaitez écrire sont automatiquement envoyées à l'écran du Atari ST via l'émulateur de terminal VT52. Ceci est accompli parce que l'identifiant de fichier prédéclaré OUTPUT est automatiquement ouvert à la console, CON:, exactement comme si vous aviez codé cette instruction au début de votre programme :

  1. Rewrite(Output,'CON:');

La raison pour laquelle cela fonctionne est que le Pascal standard spécifie que toutes les sorties via Write ou WriteLn ne spécifiant pas d'identificateur de fichier doivent aller à l'identificateur OUTPUT prédéfini. Il y a au moins deux cas où vous pouvez vouloir changer l'emplacement de ce OUTPUT par défaut :

Ainsi, si vous souhaitez envoyer toutes les sorties de vos instructions Write et WriteLn à l'imprimante, il vous suffit d'insérer la ligne suivante quelque part avant la première utilisation de ces instructions par votre programme :

  1. ReWrite(Output,'LST:');

À partir de ce point, toutes les sorties qui devraient normalement s'afficher sur l'écran de l'Atari ST iront à l'imprimante. Si vous souhaitez revenir à l'affichage du chèque après l'envoi de la sortie à l'imprimante, utilisez l'instruction suivante avant les instructions Write ou WriteLn que vous souhaitez envoyer à l'écran :

  1. ReWrite(Output,'CON:');

Il n'y a aucune raison que la sortie par défaut de Write et WriteLn doive aller à l'écran ou à l'imprimante. Vous pouvez utiliser n'importe quel fichier ou nom du périphérique légal, tel que défini ci-dessus, pour la redirection.



PARTAGER CETTE PAGE SUR
Dernière mise à jour : Dimanche, le 19 septembre 2021