Bonjour, désolé de vous déranger! On a un projet à faire en programmation avec une amie (L2 de Licence Mathematiques) et on est vraiment perdue. Si vous avez le temps de nous filer un coup de main ca serait vraiment sympa, on sait meme pas par ou commencer. Merci beaucoup
Ecrire un programme opfile qui permet de réaliser diverses opérations de manipulation sur un fichier (ou une liste de fichiers) dont le nom est entré par l'utilisateur. Le principe de fonctionnement est similaire à celui du programme statfile (cf. exercice B5) dans lequel l'opération de traitement était spécifiée sous la forme d'un mot-clé dans la commande saisie par l'utilisateur. Néanmoins, à la différence de statfile, certaines opérations ont besoin d'un ou deux arguments optionnels supplémentaires (spécifiés à l'aide du signe '='), que le programme doit pouvoir récupérer correctement avant d'appliquer le traitement demandé à la liste de fichiers. Voici les opérations qui doivent être réalisables :
num : afficher le contenu de chaque fichier de la liste en numérotant ses lignes
head=n : lister les n premières lignes de chaque fichier (par défaut, lorsque n n'est pas spécifié, on prend la valeur 10)
tail=n : lister les n dernières lignes de chaque fichier (par défaut, n=10)
unique : afficher le contenu de chaque fichier de la liste en ne gardant que la première occurrence pour chaque ligne figurant en multiples exemplaires
incsort : lister chaque fichier en triant les lignes par ordre lexical croissant
decsort : lister chaque fichier en triant les lignes par ordre lexical décroissant
count : compter le nombre de lignes, de mots et de caractères de chaque fichier
rilex : calculer le coefficient de richesse lexical de chaque fichier (cf. exercice B6 pour la définition de ce coefficient)
histo=n : afficher le nombre d'occurrences des n mots les plus utilisés de chaque fichier (par défaut, n=10 )
find=str : afficher toutes les lignes contenant la chaîne de caractères str pour chacun des fichiers (par défaut, str=' ' )
replace=str1,str2 : afficher le contenu de chaque fichier, en remplaçant toutes les occurrences de la chaîne str1 par la chaîne str2)
et bien sûr, toute autre opération qui vous semble intéressante à rajouter...
Pour toutes les opérations qui affichent le contenu (ou une partie) des fichiers, il est souhaitable de séparer le contenu des différents fichiers par une ligne de tirets dans laquelle on incruste le nom du fichier à venir (cf. exemple ci-dessous). Enfin, de manière optionnelle, on peut autoriser l'exécution de plusieurs opérations en chaîne, en spécifiant une ligne de commande où les opérateurs sont séparés par des virgules.
Exemple d'exécution :
================================================================================
OPFILE : perform miscellaneous operations on a list of text files
================================================================================
Note : enter an empty line to stop the interaction loop
<> Enter command : rilex toto.txt titi.txt
toto.txt : 0.1233333
titi.txt : 0.7125
<> Enter command : head=2 toto.txt titi.txt
--- toto.txt -------------------------------------------------------------------
Ceci est la première ligne du fichier toto.txt
Ceci est la deuxième ligne du fichier toto.txt
--- titi.txt -------------------------------------------------------------------
Ceci est la première ligne du fichier titi.txt
Ceci est la deuxième ligne du fichier titi.txt
--------------------------------------------------------------------------------
<> Enter command :
Partager