CODINGCLASSEURS WEKA ★ Comment exploiter toutes les ressources et augmenter les performances de votre AMSTRAD CPC ★

4/4.5.4 Programmation d'un traitement de texteCoding Classeurs Weka
4/4.5 - Utilisation du Turbo-Pascal

4/4.5.4 Programmation d'un traitement de texte

Afin de mieux comprendre l'utilisation des commandes du Turbo-Pascal, nous vous présentons un programme qui réalise la fonction de traitement de texte sur une ou plusieurs pages d'écran. Il est écrit totalement en Turbo-Pascal et présente l'avantage d'utiliser de nombreuses commandes.

La mémoire nécessaire pour entrer la source de ce programme, pour le compiler et l'exécuter n'est disponible que sur les CPC 6128. Ce programme ne concerne donc que les possesseurs de 6128.

D'une manière générale, Turbo-Pascal n'est vraiment intéressant que sur les CPC 6128. En effet, sur les CPC 464 et 664, seulement 6 Ko de mémoire sont réservés pour le programme exécutable et les données, ce qui est bien peu. Pour donner un ordre d'idées, le traitement de texte dont le listing est donné ici demande environ 5 Ko de mémoire pour les données, 9 Ko de mémoire pour le code exécutable et 15.6 Ko pour le code source.

Il s'agit d'un traitement de texte pleine page dont les possibilités sont les suivantes :

En mode « un écran » :

  • saisie de texte en majuscule ou minuscule ;
  • déplacement du curseur grâce aux touches du pavé numérique ;
  • touche « back space » effective, qui permet d'effacer le caractère qui se trouve à gauche du curseur ;
  • insertion d'une ligne avant la position courante du curseur ;
  • suppression de la ligne courante ;
  • fin d'édition et sauvegarde magnétique.

En mode « plusieurs écrans » :

Les fonctions disponibles sont les mêmes que celles du mode « un écran ».

Le scrolling d'écran (haut et bas) est automatique lorsque le curseur se trouve positionné respectivement sur la dernière ligne ou sur la première ligne de l'écran.

Le programme est organisé en plusieurs procédures dont voici les listes et les descriptions :

Lecture

Cette procédure lit un caractère tapé au clavier et le renvoie dans la variable caractère Ch.

On notera l'utilisation de l'ordre keypressed de la manière suivante :

While not keypressed do;

qui signifie : tant qu'aucune touche du clavier n'est pressée, attendre.

Lit

On notera également l'élimination du code ESCape (127). En effet, ce caractère précède le code de certaines touches pour préciser que leur fonction est spéciale.

Cette procédure lit plusieurs caractères tapés au clavier et les affiche sur l'écran. Le retour chariot en fin de saisie est automatique. La longueur du texte à saisir est placée dans la variable longueur par l'appelant, et le texte entré au clavier est disponible dans la variable A en sortie de la procédure.

Saisie 1

Cette procédure réalise la saisie de texte plein écran en mode une page. Le curseur peut être déplacé en utilisant les touches du pavé numérique.

La touche BS (Back Space) peut être utilisée pour effacer le caractère qui se trouve à gauche du curseur.

La touche home positionne le curseur au début de la ligne courante, et la touche end à la fin de la ligne courante. Une ligne peut être insérée avant la ligne courante en appuyant simultanément sur les touches CTRL et I.

La ligne courante peut être effacée en appuyant simultanément sur les touches CTRL et X.

Enfin, la fin de saisie de texte est signalée par l'appui simultané des touches CTRL et F.

Saisie 2

Cette procédure reprend les facilités d'édition de Saisie 1 mais intègre en plus un scrolling automatique vers le haut et vers le bas lorsque le curseur se trouve respectivement sur la dernière ou sur la première ligne de l'écran.

Depl_haut

Cette procédure déplace le curseur vers le haut et réalise éventuellement un scrolling d'écran si nécessaire (curseur positionné sur la première ligne de l'écran).

A_la_ligne

Cette procédure positionne le curseur au début de la ligne qui suit la ligne courante, et réalise éventuellement un scrolling d'écran si nécessaire (curseur positionné sur la dernière ligne d'écran).

Depl_bas

Cette procédure déplace le curseur vers le bas et réalise éventuellement un scrolling d'écran si nécessaire (curseur positionné sur la dernière ligne de l'écran).

Initialisation

Cette procédure initialise les diverses variables du programme en début d'exécution.

Beep

Cette procédure émet un beep sonore. Elle est appelée par le programme principal ou par les diverses procédures lorsqu'une erreur d'ordre général se produit. Voir la liste de la procédure Beep partie 4 chapitre 4.5.2 pages 4 à 6.

Sauvegarde

Cette procédure sauvegarde sur disquette ou disque dur le texte entré.

La sauvegarde se fait dans un fichier texte. La première ligne du fichier texte précise le nombre de lignes du fichier. Les autres lignes représentent le texte entré, en clair.

Cette procédure initialise les diverses variables du programme en début d'exécution.

Retrouve

Cette procédure lit le fichier écran dont le nom a été précisé. Les 25 premières lignes sont affichées à l'écran, et le curseur est positionné en haut et à gauche de l'écran.

Programme principal

Il fait appel aux diverses procédures que nous venons d'énumérer selon l'ordre précisé dans l'ordinogramme ci-dessous :

Ordinogramme du traitement de texte

Le programme de traitement de texte en Turbo-Pascal®

★ NOTE: 9e Complément

Page précédente : 4/4.5.3 - Position du curseur sur l écran
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 398 millisecondes et consultée 1185 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.