Section courante

A propos

Section administrative du site

Filtres DOS

Les filtres sont des programmes, des routines ou des utilitaires acceptant les entrées et modifient les données pour les sorties. Les filtres font la même chose au niveau du système d'exploitation : les caractères sont passés à ces filtres en entrée, les filtres modifient les caractères puis envoient les caractères modifiés en sortie. Cette manipulation prend plusieurs formes. Les filtres peuvent trier les données, remplacer certaines données par d'autres données, encoder des données ou décoder des données.

Le DOS a trois filtres de base disponibles :

Commande Description
FIND Recherche l'entrée d'un ensemble de caractères spécifié
SORT Organise le texte ou les données dans l'ordre
MORE Formats d'affichage de texte

Ces filtres effectuent une redirection simple des entrées/sorties standard. Ils lisent les caractères du périphérique d'entrée standard, manipulent les caractères selon les besoins, puis les affichent sur le périphérique de sortie standard. Le périphérique d'entrée standard sous DOS est le clavier et le périphérique de sortie standard est le moniteur. Les versions DOS 2.0 et supérieures permettent à l'utilisateur de rediriger l'entrée/sortie standard vers des fichiers. Ainsi, un filtre peut lire les caractères du clavier ou d'un fichier, selon le périphérique d'entrée standard sélectionné. Ceci est possible en utilisant un filtre en conjonction avec l'une des fonctions de descripteur de fichier DOS pour la lecture et l'écriture. Le DOS propose cinq descripteurs de fichiers :

Descripteur de fichier Description Nom
0 Entrée standard CON (clavier)
1 Sortie standard CON (écran)
2 Sortie d'erreur standard CON (écran)
3 Interface série standard AUX
4 Imprimante standard PRN

Si l'utilisateur appelle un programme depuis le niveau DOS, le caractère < redirige l'entrée et le caractère > redirige la sortie. Dans l'exemple suivant, l'entrée provient du fichier IN.TXT au lieu du clavier. La sortie est écrite dans le fichier OUT.TXT à la place de l'écran :

sort <in.txt >out.txt

SORT

Une fois que l'utilisateur a entré la commande ci-dessus, DOS reconnaît qu'un programme nommé SORT doit être appelé. Puis il rencontre l'expression <IN.TXT qui redirige l'entrée standard. Cela se produit en affectant le descripteur de fichier 0 (entrée standard, pointant auparavant vers le clavier) au fichier IN.TXT. L'expression >OUT.TXT réinitialise le descripteur de fichier 1 sur le fichier OUT.TXT au lieu de l'écran. Le descripteur de fichier affecté est d'abord fermé, puis le fichier redirigé est ouvert.

Une fois que le processeur de commandes a terminé avec la ligne de commande, il appelle le programme SORT à l'aide de la fonction EXEC (fonction 4Bh de DOS). Étant donné que le programme appelé avec la fonction EXEC dispose de tous les descripteurs du programme appelant, le programme SORT peut entrer/sortir des caractères vers les descripteurs 0 et 1. L'origine des caractères n'a pas d'importance pour le programme.

Une fois que le programme SORT a terminé son travail, il rend le contrôle au processeur de commandes. Le processeur de commande réinitialise la redirection et attend une autre entrée de l'utilisateur.

Tuyaux

Le principe de filtrage tel qu'il est supporté par DOS devient particulièrement puissant à travers les tuyaux. Cette expression vient de l'idée d'un pipeline utilisé pour transporter du pétrole ou du gaz. Les tubes DOS ont une fonction similaire : ils transportent des caractères d'un programme à un autre et permettent la connexion de divers programmes entre eux.

Lorsque cela se produit, les caractères sortis d'un programme vers le périphérique de sortie standard peuvent être lus par un autre programme depuis le périphérique d'entrée standard. Comme dans la redirection de l'entrée/sortie standard, les deux programmes ne remarquent pas les pipelines. La différence entre les deux procédures est que sous la redirection des périphériques d'entrée/sortie standard, les données ne peuvent être redirigées que vers un périphérique ou un fichier, tandis que l'utilisation de canaux permet le transfert de données vers un autre programme.

Filtres combinés

Les tuyaux permettent à l'utilisateur de connecter plusieurs filtres. Le caractère pipe | est inséré entre les programmes à connecter. Un exemple devrait rendre cela plus compréhensible : Un fichier texte nommé DEMO.TXT est trié puis affiché à l'écran sous forme de page. Même si cette tâche semble très compliquée au premier abord, elle peut être effectuée facilement à l'aide de deux filtres DOS : SORT et MORE. SORT trie le fichier et MORE affiche le fichier à l'écran sous forme de page.

La question est, comment pouvez-vous dire au processeur de commandes de faire ces choses ? Le premier SORT est utilisé. Ce filtre est chargé de trier le fichier DEMO.TXT. La redirection d'entrée standard peut être utilisée comme illustré au début de cette page :

SORT <DEMO.TXT

Une fois que l'utilisateur a entré cette commande, SORT trie le fichier DEMO.TXT puis affiche le fichier à l'écran. Cet affichage serait beaucoup plus lisible en format page. Une sortie formatée peut être implémentée en redirigeant la sortie de SORT vers un fichier (par exemple TEMP.TXT) et en affichant ce fichier à l'aide de la commande MORE. La séquence de commandes suivante le fait :

SORT <DEMO.TXT >TEMP.TXT
MORE <TEMP.TXT

Vous pouvez utiliser un tube pour connecter le filtre SORT et le filtre MORE, ce qui permet à l'utilisateur de gagner du temps lors de la saisie. La ligne de commande suivante envoie la sortie de SORT directement à MORE et affiche immédiatement le fichier trié au format page :

SORT <DEMO.TXT | MORE

N'importe quel nombre de filtres peut être connecté à l'aide de tuyaux. Le DOS exécute toujours ces filtres en pipeline de gauche à droite. Il envoie la sortie du premier programme en entrée au deuxième programme, la sortie du deuxième programme en entrée au troisième programme,... Le dernier programme peut à nouveau forcer la redirection de la sortie avec le caractère > afin que le résultat final du tout le programme ou la chaîne de filtres se déplace vers un fichier ou un autre périphérique au lieu de l'écran.

Remarque : Le DOS ne peut pas envoyer de données d'un filtre directement à un autre car il devrait exécuter les deux filtres simultanément, et la version actuelle de DOS n'a pas de capacités de multitraitement. Au lieu de cela, la méthode suivante est utilisée. L'entrée appelle le premier filtre et redirige sa sortie vers un fichier de tuyau. Une fois que le premier filtre a terminé son traitement, il appelle le second filtre mais redirige son entrée vers le fichier de tuyau pour lire la sortie du premier filtre. Ce principe s'applique à tous les filtres. Le fichier de tuyau est entreposé dans le répertoire de travail courant.

Le mot "vider" est un mot à la mode informatique pour un moyen d'afficher le contenu d'un fichier en caractères ASCII et/ou en nombres hexadécimaux.



Dernière mise à jour : Lundi, le 23 janvier 2023