problème de lecture de fichier et d'extraction de données
bonsoir, j'ai réalisé un petit programme qui peut permettre la sauvegarde ou l'ouverture de données, la sauvegarde s'effectue correctement. Je dispose d'une structure "Section" qui contient 11 champs relatifs à la section. Dans le fichier de sauvegarde, chacune des sections est écrite sur une ligne, et chacun des champs est séparé par une barre verticale "|". Dans mon proogramme principal, j'ai défini une liste de sections :
Code:
List<Section>liste_sections = new List<Section>();
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| if (openFileDialog1.ShowDialog(this) == DialogResult.OK)
{
string ligne = "";
int j = 0;
// Création d'une section temporaire
Section new_section = new Section();
// Ouverture du fichier sélectionné
StreamReader sr = new StreamReader(openFileDialog1.OpenFile(), Encoding.Default);
ligne = sr.ReadLine();
while (ligne != null)
{
// on sépare tous les mots
string[] donnees = ligne.Split('|');
// on ajoute la section grâce à la méthode AddSection
new_section.AddSection(donnees[0], donnees[1], donnees[2], donnees[3], donnees[4], donnees[5], donnees[6], donnees[7], donnees[8], donnees[9], donnees[10]);
// On ajoute l'élement dans la liste de sections
liste_sections.Add(new_section);
// affichage des infos correctement sauvegardées
MessageBox.Show(liste_sections.ElementAt(j).GetInfos(), "About", MessageBoxButtons.OK, MessageBoxIcon.Information);
comboBox1.Items.Add(new_section.GetSection());
ligne = sr.ReadLine();
j++;
}
// affichage des infos
MessageBox.Show(liste_sections.ElementAt(0).GetInfos() + "\n" + liste_sections.ElementAt(1).GetInfos(), "About", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
} |
Par exemple, j'ai configuré 2 sections dans le fichier de sauvegarde, j'utilise 2x la boite de dialogue
Code:
MessageBox.Show(liste_sections.ElementAt(j).GetInfos(), "About", MessageBoxButtons.OK, MessageBoxIcon.Information);
une fois pendant le while, et une fois à l'extérieur. Lorsque je suis dans la boucle while, les informations qui sont affichées sont correctes. a l'extérieur de la boucle while, les informations affichées sont 2x celles de la dernière ligne du fichier... quelqu'un sait-il d'ou provient mon erreur?