Bonjour,
Je rencontre le problème suivant :
un traitement est réalisé sur une ligne (d'un fichier texte) qui peut comprendre, en fonction du contexte 28, 29 ou 30 champs.
Certains de ces champs ne sont pas systématiquement valorisés, . Par exemple, les champs n° 15 et 16 peuvent être vides, ainsi que les champs 29 et 30. Les champs vides existent bien, du fait de la présence de la tabulation qui est le délimiteur de champ et doivent être pris en compte.
Chaque valeur est récupérée et renseigne un tableau :
Le problème : La ligne dont les champs 29 et 30 ne sont pas valorisés, "produit" un tablo2 de 28 indices. Pourtant, les champs 15 et 16 qui eux non plus ne sont pas valorisés, sont bien pris en compte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 String ligneLue = lignes_lnr.readLine(); String [] ligneDecoupee; ligneDecoupee = ligneLue.split(\t); for (int i=0;i<ligneDecoupee.length;i++) { tablo2[i]=ligneDecoupee[i];
Si le champ 30 est valorisé, mais pas le champ 29, tablo2 comprend bien 30 indices, (dont certains ne sont pas valorisés, normal). Ce que je constate, c'est que tant qu'il y a un champ valorisé qui suit x champs vides, les x champs vides sont pris en compte. Si le ou les derniers champs de la ligne sont suivis d'un retour chariot marquant la fin de ligne, (et non d'un champ valorisé donc), il ne sont pas pris en compte dans tablo2.
Comment puis-je palier à ce problème, sachant que la longueur (en nombre de champs) de la ligne est variable ?
Partager