CODING ★ PROGRAMMATION INITIATION - Carte mémoire des CPC ★

Ali Gator - Les Fichiers Ascii|Micro-Mag)

LES COURS DU PROFESSEUR ALI GATOR: Les fichiers Ascii

Après Basic, binaire et à l'approche de l'hiver, voici venu le temps des fichiers ASCII.

L'emploi du terme «fichiers Basic ou binaires» est en fait une erreur due à l'habitude. Il faudrait plutôt les qualifier de programmes, le mot fichier s'attribuant à tout ce qui contient des données. Beaucoup de logiciels créent ou utilisent des fichiers de données qui, dans la plupart des cas, sont sauvegardés sous forme ASCII. Présentés sur disquette généralement sans extension après le point, ils sont facilement identifiables.

Un fichier à quoi?
ASCII!

L'ASCII (American Standard Code for Information Interchange) est un ensemble de codes communs à presque tous les ordinateurs. Ainsi, quel que soit l'appareil possédé, le code de la lettre A aura toujours 65 comme valeur numérique. La valeur de ces codes est comprise entre 32 et 128. L'enregistrement se fait par ligne de 255 caractères maximum. La fin de chaque ligne est signalée par le CHR$(13); le CHR$(26) signale la fin du fichier. Ce point commun - un des seuls malheureusement - permet après quelques acrobaties de transférer des fichiers de données d'un ordinateur à l'autre (attention, «fichiers» et non pas «programmes»). Prenons l'exemple de cet article créé sur CPC (et dans la douleur) grâce à un traitement de texte. Il a été sauvegardé sur disquette 3" sous la forme d'un fichier ASCII dans lequel figurent des données numériques - paramètres propres au traitement de texte utilisé comme les codes d'impression, le nombre de lignes, les marges, etc. - et alphanumériques que sont toutes les phrases du texte. Expédié à la rédaction de Micro-Mag, il a été transféré de CPC sur compatible PC (moyennant interface série RS232, cordon et soft idoines). Un rédacteur a ensuite chargé le précieux fichier ASCII sur un autre traitement de texte, afin de procéder à quelques petits remaniements, corrections (l'ortografe ce dure) et hop! direction la mise en page. Ainsi, au prix de quelques manipulations mineures, une double saisie a été évitée grâce au standard ASCII.

Lire un fichier ASCII

Nous avons vu qu'un fichier de données ASCII est l'émanation d'un programme Basic ou binaire généralement nommé utilitaire ou encore prologiciel. Il n'est pas obligatoire de posséder ledit logiciel pour lire les fichiers ASCII venant de celui-ci. Dans la récréation la Boîte à clous possédait une telle option. Pour ceux qui l'auraient ratée, en voici l'équivalent.

10 OPENIN "!"+ FIC$ : REM FIC$ = NOM DU FICHIER ASCII
20 WHILE NOT EOF
30 LINE  INPUT #9,  A$  : PRINT  A$ : WHILE INKEY$="" : WEND
40 CALL &BB18 : WEND : END

Confidentiel! Sauvegardant de nombreux textes sous des noms pas toujours très parlants, j'utilise très souvent cette petite astuce comme recherche rapide. Elle m'épargne le chargement du traitement de texte.

Mots Basics réservés aux fichiers ASCII

Quelques commandes Basics bien spécifiques sont réservées au traitement des fichiers ASCII. Elles sont de deux sortes; les IN et les OUT. Votre ordinateur qui dialogue en permanence avec son environnement (périphériques : clavier, lecteur de disquettes ou cassettes, imprimante, etc.), fait la différence entre ce qui vient de lui (OUT) et ce qui vient de l'extérieur (IN). Cette notion d'intérieur et d'extérieur se retrouve dans les commandes relatives aux fichiers. Ainsi nous avons

  • OPENIN "!NOM" : ouvre en lecture un fichier de données. Le point d'exclamation permettant de supprimer les messages de chargement si vous travaillez sur cassette.
  • EOF permet de tester où en sont les données d'un fichier ouvert en écriture. La boucle WHILE NOT EOF : WEND ne s'arrêtera que lorsque le CHR$(26), signalant la fin d'un fichier, aura été lu.
  • INPUT #9 : le canal 8 est réservé aux informations pour l'imprimante. Le canal 9 est la route par laquelle transitent les données d'un fichier ASCII de l'unité de sauvegarde vers l'ordinateur. INPUT est donc la commande utilisée pour le chargement.
  • CLOSEIN : fermeture du fichier ouvert pour lecture.
  • OPENOUT : idem que Openin, mais l'ouverture du fichier se fait pour l'écriture de données.
  • PRINT #9 : cette fonction doit être réservée pour l'enre* gistrement des données sur tel support de sauvegarde.
  • WRITE #9 : écriture de données dans le fichier. A utiliser de préférence pour des données numériques car cette commande permet un gain de mémoire.
  • LINE INPUT #9 : commande permettant de lire une ligne entière - encore appelée séquence - provenant d'un fichier de données.
  • CLOSEOUT : fermeture du fichier ouvert pour écriture.

OPENOUT OUT "BID"

Lorsque vous créez ou lisez uni fichier ASCII avec les instructions OPENIN et OPENOUT, le système se réserve en hautl de la mémoire un buffer de 41 Ko permettant le transfert des  données de la RAM vers le sup port de sauvegarde. Ce buffer se place juste sous l'HIMEM (Khomeiny). Nous avons vu dans la leçon sur les programmes Basic, que toutes les variables     déjà utilisées venaient se stocker à cet endroit. Pour créer ce fameux buffer, le système est donc dans l'obligation de faire le  ménage en relogeant toutes les variables 4 ko plus bas avant  de commencer la sauvegarde  du fichier. Si les variables ne  sont pas encore trop nombreuses, l'opération sera de courte durée. Mais il n'est pas rare que cela demande plusieurs minutes. C'est pourquoi, dans beaucoup de cas, figure en début de listing la ligne suivante.

OPENOUT "BIDON" : MEMORY HIMEM-1 : CLOSEOUT

Cette ouverture en écriture d'un fichier vide permet de créer le buffer de 4 ko avant l'utilisation de variables. On abaisse aussitôt après le MEMORY sous le buffer, afin que plus aucune variable ne vienne le recouvrir. Quand le programme rencontrera un vrai OPENIN ou OPENOUT, le buffer de 4 ko existera déjà et sera vide; donc, pas de ménage à faire. Une seule petite restriction: SYMBOL AFTER et les caractères redéfinis doivent impérativement être déclares avant l'OPENOUT "BIDON", sinon, plantage avec IMPROPER ARGUMENT garanti.
Ainsi s'achève la trilogie réservée aux différents types de programmes et fichiers (il existe bien quelques variantes, mais contentons-nous de l'essentiel). Le mois prochain, nous nous pencherons, en essayant de ne pas tomber, sur la RAM vidéo ou mémoire écran.

MICROMAG n°7

★ EDITEUR: MICROMAG
★ ANNÉE: 1989
★ AUTEUR: CLAUDE LE MOULLEC

Page précédente : Ali Gator - Les Fichiers Basic (Micro-Mag)

CPCrulez[Content Management System] v8.7-desktop/cache
Page créée en 112 millisecondes et consultée 898 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.