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;
  }
}