2017-04-09 1 views
0

J'essaie d'utiliser StreamReader pour décomposer des données d'un fichier texte en plusieurs listes. Jusqu'à présent, j'ai été en mesure d'obtenir toutes les données dans une boîte de liste, mais la prochaine étape de mon projet nécessite la division des données et je pense que je comprends mieux les listes que les tableaux. J'ai fait un effort pour rechercher un problème similaire, mais parce que je suis un débutant, la plupart de ce que j'ai trouvé me rend plus perplexe. Je n'ai pu accomplir ce qui suit avec succès:StreamReader à plusieurs listboxes

StreamReader file = new StreamReader(openFileDialog1.FileName); 
string data; 
while (!file.EndOfStream) 
{ 
    data = file.ReadLine(); 
    listBox1.Items.Add(data); 
} 
file.Close(); 

Mes données dans mon fichier txt se décline en blocs de trois comme ceci:

blue 
david 
8042 
red 
joseph 
7042 

Je ne peux pas changer le format de données, de sorte Je suis en train de coder de telle manière que

if (blue) 
    listBox1.Items.Add(david); 
    listBox2.Items.Add(8042); 
else if (red) 
    listBox3.Items.Add(joseph); 
    listBox4.Items.Add(7042); 

etc. J'ai seulement deux couleurs pour travailler avec, mais beaucoup de données pour chacune de ces couleurs. Mon problème est que je suis novice dans le codage et que je ne parviens pas à mettre en place les bases que j'ai apprises pour faire une telle chose.

Quelles sont les lignes de code qui me manquent pour ajouter une ligne ci-dessous une ligne à une zone de liste pendant qu'elle StreamReads? Ai-je besoin d'utiliser un

int counter = 0; 

et augmenter de 1 ou 2 pour obtenir ces lignes, ou que je pense trop gros?

Merci beaucoup pour votre aide. J'ai l'impression qu'il me manque quelque chose de très simple que je n'ai pas encore saisi.

Répondre

0

Une issue possible est la lecture par trois lignes (à savoir de bloc entier) au lieu de un:

using (StreamReader file = new StreamReader(openFileDialog1.FileName)) { 
    while (!file.EndOfStream) { 
     string color = file.ReadLine(); 
     string name = file.ReadLine(); 
     string number = file.ReadLine(); 

     if (color == "blue") { 
     listBox1.Items.Add(name); 
     listBox2.Items.Add(number); 
     } 
     else if (color == "red") { 
     listBox3.Items.Add(name); 
     listBox4.Items.Add(number); 
     } 
    } 
    } 
+0

Merci, Dmitry! Tu m'as montré exactement ce qui me manquait. – Minnophous