Défi
Énoncé
Le programme lit un fichier CSV sur l'entrée standard (une ligne par enregistrement). Chaque champ peut être non guillemété (sans virgule ni guillemet) ou guillemété (entre "). Dans un champ guillemété, une virgule est un caractère ordinaire et deux guillemets consécutifs "" représentent un guillemet littéral. Pour chaque enregistrement, le programme affiche le nombre de champs, puis chaque champ sur sa propre ligne, préfixé de son index (0-based) et du caractère |.
Contraintes
- Chaque ligne fait au plus 4 096 caractères.
- L'entrée contient au plus 1 000 lignes.
- Les champs non guillemétés ne contiennent ni
"ni,. - Les fins de ligne à l'intérieur d'un champ guillemété ne sont pas gérées (sous-ensemble de la RFC).
- Solution réalisable dans tout langage généraliste avec sa seule bibliothèque standard.
Exemple
Entrée :
Alice,30,Paris
"Bob, Jr.",25,"New ""York"""
Sortie :
3 champs
0|Alice
1|30
2|Paris
3 champs
0|Bob, Jr.
1|25
2|New "York"