Propriété Length d’un fichier TSV¶
On pourrait trouver fort à propos d’utiliser la propriété length d’un métrage TSV obtenu via footage( nom_de_fichier )
.
Cela n’est malheureusement pas prévu ou documenté par les développeurs du logiciel.
Il semblerait qu’on ne puisse pas non plus faire une boucle assortie d’un try {} catch ( e ) {}
(tout du moins je n’y suis pas parvenu).
On peut par contre employer la fonction récursive suivante :
function nb_lignes_tableur ( nom_de_fichier, index = 0 ) {
/* récupère le nombre ligne d'un tableur CSV ou TSV
Fonction récursive ! */
// on vérifie d'abord qu'on a bien
// obtenu un nom de fichier en premier paramètre
if ( typeof nom_de_fichier !== 'string' ) {
// si ce n'est pas le cas on renvoie une erreur.
throw 'Le premier paramètre doit être un nom de fichier';
// si c'est bon on teste si le fichier existe
} else {
// une erreur sera renvoyée si le fichier n'est pas trouvé
// interrompant les opérations
footage( nom_de_fichier );
}
// on essaie
try {
// de trouver une valeur à l'index donné en paramètre
footage( nom_de_fichier ).dataValue([ 0, index ]);
// si c'est bon on essaie avec l'index suivant
return nb_lignes_tableur( nom_de_fichier, index + 1 );
}
// si ça ne marche pas
catch {
// on renvoie l'index courant, c'est aussi la longueur du tableau
return index;
}
}