Wczytywanie linii do ListView

Wczytywanie linii do ListView
M1
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 9 lat
  • Postów:10
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ę. :)

Kopiuj
        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);
            }

        } 
edytowany 1x, ostatnio: Marion1992
katelx
  • Rejestracja:około 10 lat
  • Ostatnio:6 miesięcy
  • Lokalizacja:Hong Kong
0

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

M1
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 9 lat
  • Postów:10
0

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

katelx
  • Rejestracja:około 10 lat
  • Ostatnio:6 miesięcy
  • Lokalizacja:Hong Kong
0

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

Reinicke
  • Rejestracja:prawie 10 lat
  • Ostatnio:11 miesięcy
  • Postów:18
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?

Kopiuj
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]);
              }
         }
    }
} 

Si non confectus, non reficiat.
edytowany 1x, ostatnio: Reinicke
Heheczek
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 5 lat
  • Postów:148
0

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

Kopiuj
string[] fileItems = sr.ReadToEnd().Split(',');
M1
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 9 lat
  • Postów:10
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?

Kopiuj
 
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.

edytowany 1x, ostatnio: Marion1992
katelx
  • Rejestracja:około 10 lat
  • Ostatnio:6 miesięcy
  • Lokalizacja:Hong Kong
0

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

M1
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 9 lat
  • Postów:10
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.