Developpez.com - Rubrique MATLAB

Le Club des Développeurs et IT Pro

Défi n°9 : Validation de fichiers textes,

Venez coder en Matlab et relever le défi !

Le 2014-08-21 11:05:41, par Jerome Briot, Rédacteur/Modérateur


Un nouveau défi inspiré d'une discussion d'un forum voisin : Traitement fichier txt

Le but consiste donc à écrire un code MATLAB qui va analyser des fichiers textes et vérifier pour chaque fichier les deux conditions suivantes :

  • condition n°1 : chaque ligne contient exactement 129 caractères (espace compris)
  • condition n°2 : le fichier se termine par une ligne vide


Je vous fourni 7 fichiers textes, nommés fichier01.txt … fichier07.txt (voir le fichier zip attaché)

Voici également un prototype de fonction que vous compléterez en ajoutant votre pseudo au nom de la fonction :

Code :
1
2
3
function isFilesOK = checkFilesBy%<VOTRE PSEUDO>%

filesList = dir('fichier*.txt');
Vous placerez le fichier .m dans le dossier contenant les 7 fichiers txt.

La variable de sortie isFilesOK est un tableau de dimension 7x3. Chaque ligne correspond à un fichier. La première colonne correspond aux résultats de la condition n°1, la deuxième à ceux de la condition n°2. La troisième colonne est le résultat de la condition n°1 ET de la condition n°2 qui valide le contenu du fichier, comme demandé dans la discussion initiale.

Voici ce que vous devez obtenir pour les 7 fichiers txt fournis :

Code :
1
2
3
4
5
6
7
8
9
isFilesOK =

     1     1     1
     0     1     0
     1     0     0
     0     1     0
     1     1     1
     0     0     0
     1     1     1

----------------------------

Question subsidiaire

Ajoutez un bloc de code à la fin de la fonction checkFilesBy qui permettra, à partir du tableau isFilesOK de générer un fichier resultats.txt identique à ceci :

Code :
1
2
3
4
5
6
7
fichier01.txt OK
fichier02.txt ERREUR
fichier03.txt ERREUR
fichier04.txt ERREUR
fichier05.txt OK
fichier06.txt ERREUR
fichier07.txt OK
----------------------------

Vous posterez vos solutions à la suite de ce message.

Vous pouvez également poser vos questions si un point de l'énoncé ci-dessus ne vous parait pas clair ou bien si il y a une erreur.

----------------------------

Amusez-vous bien... ou pas