Wczytywanie linii do ListView

0

Cześć wszystkim jestem jeszcze osobą początkującą w programie Visual C#. Mój problem dotyczy wczytywania linii z pliku ".txt" do ListView. Każda linia składa się z 13 członów oddzielonych przecinkami. Moje zadanie polega na tym abym wyświetlić dla każdej linii 5 wybranych członów. Udaje mi się wczytać tylko jedną linijkę ale nie mam pomysłu na przeanalizowanie całego pliku tekstowego. Ma ktoś może jakieś propozycje? Z góry bardzo dziękuję. :)

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {

                StreamReader sr = new StreamReader(File.OpenRead(ofd.FileName));
                string[] fileItems = sr.ReadToEnd().Split(',');
                sr.Dispose();


                ListViewItem lv = new ListViewItem();
                listView1.Items.Clear();
                lv.SubItems.Add(fileItems[2].ToString());
                lv.SubItems.Add(fileItems[3].ToString());
                lv.SubItems.Add(fileItems[4].ToString());
                lv.SubItems.Add(fileItems[5].ToString());
                lv.SubItems.Add(fileItems[9].ToString());
                listView1.Items.Add(lv);
            }

        } 
0

czytaj linijka po linijce? http://www.dotnetperls.com/streamreader

0

Nie (to ja znam) chodzi o wczytywanie tych samych członów dla każdej linii do ListView

0

czytaj linijka po linijce i wrzucaj ja do listboxa, uzyj np. petli foreach do tego. albo lepiej wytlumacz o co chodzi :)

0

Nie wiem czy cię dobrze zrozumiałem, chcesz odczytać 5 pierwszych słów z każdej linii w pliku i je dodać do listview?
Coś takiego?

using (var reader = new StreamReader(@"PathToMyFile"))
{
    string line;
    while ((line = reader.ReadLine()) != null)
    {
         var words = line.Split();
         if(words.Length >= 5)
         {
              for(int i = 0; i< 5; i++)
              {
                    lv.Items.Add(words[i]);
              }
         }
    }
} 
0

Przecież już masz w kodzie jak czytać człony przecież :

string[] fileItems = sr.ReadToEnd().Split(',');
0

Udało mi się wczytać plik do ListView i dodać numery linii. Jednak mam niespodziewany problem, ponieważ program wczytuję mi tylko nieparzyste linie z mojego pliku tekstowego. Wie ktoś może dlaczego?

 
OpenFileDialog ofd = new OpenFileDialog();
            if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                listView1.Items.Clear();
                StreamReader sr = new StreamReader(File.OpenRead(ofd.FileName));
                int count = 0;
                string line;
                while ((line = sr.ReadLine()) != null)
                {
                    ListViewItem lv = new ListViewItem();
                    string[] lineArray;
                    lineArray = line.Split(',');
                    count++;
                    line = sr.ReadLine();

                    lv.Text = count.ToString();
                    lv.SubItems.Add(lineArray[2].ToString());
                    lv.SubItems.Add(lineArray[3].ToString());
                    lv.SubItems.Add(lineArray[4].ToString());
                    lv.SubItems.Add(lineArray[5].ToString());
                    lv.SubItems.Add(lineArray[9].ToString());
                    listView1.Items.Add(lv);
                }
                sr.Close();

Poniżej dodałem załącznik ListView.

0

wywal line = sr.ReadLine(); z wnetrza petli while

0

Serdecznie dziękuję problem zażegnany :). Koniec tematu :).

1 użytkowników online, w tym zalogowanych: 0, gości: 1