Fork me on GitHub

3296 bytes of ActionScript

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
 
  for ($i = $haut; $i >= 1; $i--)                                                                 // Toutes les tessitures qui possèdent des tuyaux.
  {
   // Titre des lignes.
   $titre = $note[$notNot][(($i - 1) % 12) + 1] . "      ";
   $titre = substr($titre, 0, (6 - strlen($titre)));
   // Détection des Octaves, Tierces et Quintes.
   if (((($i - 1) % 12) == 0 ) || ((($i + 7) % 12) == 0 ) || ((($i + 4) % 12) == 0 ))
   {
    $titre .= $nomTessi[$i];
   };
   $titre .= "            "; $titre = substr($titre, 0, (12 - iconv_strlen($titre)));             // Seul endroit (pour l'instant) où la fonction iconv_strlen() est utilisé (à cause de l'UTF8 sur la notation latine "Ré").
   if (($formSort == 1) || ($formSort == 3)) {echo(" "      .             $titre  . "|"); };      // HTML et TXT.
   if  ($formSort == 2)                      {echo("\par  " . utf8_decode($titre) . "|"); };      // RTF.
   
   // Traduction de la chaîne $cell[$i] en une chaîne ($a) affichable à l'écran.
   $a = ""; $b = ""; $c = 0; $d = 0; $r = 0;
 
   for ($t = ((($repri[0] - 1) * 2) + 1); $t <= (($repri[$nbRep] - 1) * 2); $t += 2)              // Tout le clavier par saut de deux octets.
   {
    $b = deciBin(ord(substr($cell[$i], ($t + 1), 1))) . deciBin(ord(substr($cell[$i], $t, 1)));   // Extrait et concatène deux octets.
    $c = strlen(str_replace("0", "", $b)); $d += $c;                                              // Comptabilise le nombre de tuyau sur cette note. Ajoute au total de la ligne.
    if ($c == 0)                                                                                  // Tout ce qui ne concerne pas le slash.
    {
     if ((((($t - 1) / 2) + 1) == $repri[$r]) && ($r != 0))                                       // Barre des reprises sauf sur la première.
     {
      // Sur les octaves et les quintes : croisement. Sur le reste : barre verticale.
      if (((($i - 1) % 12) == 0 ) || ((($i + 4) % 12) == 0 ) || ($i == $haut)) {$a .= "+"; } else {$a .= "|"; };
     }
     else
     {
      // Sur les octaves et les quintes : tiret. Sur le reste : espace.
      if (((($i - 1) % 12) == 0 ) || ((($i + 4) % 12) == 0 ) || ($i == $haut)) {$a .= "-"; } else {$a .= " "; };
     };
    }
    else                                                                                          // Y'en a !
    {
     if ($c == 1)                                                                                 // Un si petit slash...
     {
      switch ($formSort)
      {
       case 1 : $a .= "<font color=\"" . $couleur[16 - strpos($b, "1")] . "\">/</font>";          break; // HTML.
       case 2 : $a .= "\plain\\f3\\fs12\cf" . (16 - strpos($b, "1")) . "\b /\plain\\f3\\fs12\b "; break; // RTF.
       case 3 : $a .= "/";                                                                        break; // TXT.
      };
     };
     if (($c >= 2) && ($c <= 9)) {$a .= $c;}                                                      // Doublures, triplures, chiures et bavochures.
     if ($c >= 10) {$a .= "*";}                                                                   // Accordeur, sois patient, tu fais un bÔ métier.
    };
    if ( ((($t - 1) / 2) + 1) == $repri[$r] ) {$r++; };                                           // Changement de reprise.
   };