I- Le cadre général :
a. But du
Mini-projet:
Ce
projet consiste à concevoir un éditeur de texte contenant les fonctionnalités
de base communes à tous les éditeur en utilisant les listes chaînées.
b.
Présentation du sujet :
Un
éditeur de texte est un logiciel destiné à la création et l'édition de fichiers
textes. Chaque système d'exploitation fournit un éditeur, tant son usage est
courant, voire incontournable pour certaines tâches (souvent informatiques
(administration de système et développement logiciel)).
Les
éditeurs de texte se divisent en deux catégories:
·
Les éditeurs plein écran (ou full-screen),
·
Les éditeurs en mode caractère.
Un
éditeur plein écran n'interagit avec l'unité centrale que lorsqu'elle est pressée
une touche comme Entrée ou l'une des touches de fonction (Fn) ou d'action (PAn)
du terminal. Le reste du temps, ce sont les capacités d'insertion native
fournies par l'unité de contrôle du terminal qui permettent l'ajout, la
suppression ou l'insertion de caractères dans toutes les lignes affichées sur
l'écran.
c.
Quelques opérations de base :
Les fonctionnalités les plus élémentaires d'un
éditeur sont:
-
Ouvrir un fichier (en proposant parfois une
liste de fichiers récemment ouverts, ou déjà existants, voire en permettant de
restreindre cette liste par un filtre)
-
Ajouter du texte dans une ligne, ou des lignes
dans un fichier
-
Ôter des caractères dans une ligne, ou des
lignes d'un fichier
-
Rechercher/remplacer une chaîne texte (la
recherche n'est pas toujours disponible).
d.
Analyse générale :
Editer
un texte semble très intuitif à toute personne sachant utiliser un ordinateur
et un éditeur. Du point de vue d’un programmeur, il faut penser à toutes les
fonctionnalités que doit proposer un tel programme. De l’ouverture d’un fichier
à sa sauvegarde, en passant par les différentes opérations possibles sur le
texte et l’annulation de celles-ci. Toutes ces fonctionnalités s’appliquent à
des données.
Les fonctionnalités de l'éditeur à réaliser :
Parmi
celles-ci certaines sont « indispensables » au bon fonctionnement de l'éditeur et au respect du cahier des charges. En voici une synthèse :
·
Ouvrir ou créer un fichier ;
·
Sauvegarde du fichier sous ;
·
Sauvegarde du fichier si le fichier existe
déjà ;
·
Insertion du texte à la position
courante ;
·
Suppression du texte à la position
courante ;
·
Ajouter du texte après la ligne courante ;
·
Donner la position du curseur ;
·
Faire la recherche ;
·
Et
d’autres fonctionnalités….
Un éditeur de texte porte bien son nom : son
rôle est en effet d’éditer du texte… La donnée fondamentale est donc un texte.
Texte qui peut provenir d’un fichier chargé en mémoire, ou qui peut également
être créé de « toute pièce » dans l’éditeur.
Afin que cet éditeur puisse servir de manière
effective,il faut disposer de données persistantes qui permettent de
stocker de manière définitive ce texte (dans un fichier). Lors de son
chargement en mémoire, le texte est placé ligne par ligne dans une liste
chaînée et devient une donnée résidente jusqu’à un nouvel enregistrement.
En dehors du texte, des données relatives aux
opérations que l’on veut effectuer sont indispensables : les coordonnées x et y
de la position courante par exemple. Nombre de lignes et nombre de caractères
dans la ligne courante sont également des données q'on aura besoin
d’extraire du texte.
Un dernier type de données est utilisé, il
s’agit de la liste des commandes acceptées et reconnues par l’interpréteur de
commande. Ces données sont réunies dans une liste les faisant correspondre aux
fonctions voulues. On traite ces données en les comparants à une saisie de
l’utilisateur.
II- Architecture de l'application :
Lors du lancement du programme, on obtient la
fenêtre suivante qui demande soit d’ouvrir un fichier existant soit la création
d’un nouveau fichier. Cette opération aboutira à la création d’une liste
doublement chaînée contenant le texte en cours d’édition, chaque ligne étant
rattachée à celle la précédant et à celle la suivant.
Une fois cette opération effectuée, Une fenêtre
de saisie s’ouvre, permettant de d’éditer le texte avec toutes les
fonctionnalités habituelles de déplacement du curseur ou des lignes, de la
saisie du texte ou encore sa suppression.
Lorsqu’on clique sur ECHAP, un prompt « EDITEUR> »
s’affiche nous permettant de saisir la fonctionnalité qu’on veut effectuer. La plus simple étant
« help » ; l’aide nous permet de consulter les différentes
commandes relatives à chaque fonctionnalité disponible sur notre éditeur.
Ainsi,
l’utilisateur peut saisir les commandes qu’il désire suivies éventuellement de
leurs paramètres. Ces commandes appelleront les fonctions voulues afin qu’elles
s’exécutent et laissent à nouveau la place à l’interpréteur de commande, déjà
prêt pour la commande suivante.
Les fonctions réalisant des opérations sur le
texte reçoivent toutes un pointeur sur la liste doublement chaînée. Elles
peuvent être appelées les unes à la suite des autres.
En fin d’édition, il pourra être utile de
sauvegarder les modifications du texte dans un fichier.