Wątek przeniesiony 2016-03-30 12:47 z C# i .NET przez ŁF.

Odczyt dowolnego pliku po linijce

0

Witam!
Na początku powiem, że proszę o wyrozumiałość bo dopiero zaczynam naukę C# :-)
Mam następujący problem (nie wiem czy nawet czy dobrze podchodzę do tematu) to jest mój kod:

  private void start_Click(object sender, EventArgs e)
        {
            {
                listBox1.BeginUpdate();

                int counter = 0;
                string line;

                Stream myStream = null;
                OpenFileDialog openFileDialog1 = new OpenFileDialog();
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                    if ((myStream = openFileDialog1.OpenFile()) != null)

                listBox1.EndUpdate();
                }
            }
        }

Jak widać powyższy kawałek kodu nic nie robi prócz wywołania okienka do otwarcia dowolnego pliku, jak teraz zrobić coś takiego, żeby po wskazaniu pliku tekstowego pętla przeleciała po wszystkich linijkach pliku i zapisała poszczególne linijki pliku do listBox-a (udało mi się to zrobić z jednego konkretnego pliku tekstowego, ale nie wiem jak zrobić z dowolnie wybranego)?
Zapis ma wyglądać mniej więcej tak:

  1. Pierwsza linijka
  2. Druga linijka
  3. Trzecia linijka

Pozdrawiam, proszę o pomoc :)

0
  1. https://msdn.microsoft.com/pl-pl/library/system.io.streamreader.readline%28v=vs.110%29.aspx
  2. https://msdn.microsoft.com/pl-pl/library/s2tte0y1%28v=vs.110%29.aspx

Pod linkami masz przykłady.

EDIT:

Dla jasności, stream, który otrzymasz z openFileDialog1.OpenFile() możesz przekazać do StreamReader-a i czytać linia po linii.
Możesz też wykorzystać propertę wskazującą na wybrane przez user-a pliki.
Przy okazji, listBox1.BeginUpdate() powinien być po zamnięciu OpenFileDialog, a nie przed.

0

Już w to zaglądałem wcześniej, i dokładnie o taki odczyt po linijce mi chodzi, tylko mam problem, żeby dodać to do powyższego kody tak aby dowolny plik tekstowy który ja wskażę był odczytywany po linijce i zapisywany do listboxa...

1

Coś takiego, mogą być błędy:

if ((myStream = openFileDialog1.OpenFile()) != null)
                    {
                        listBox1.BeginUpdate();

                        using (StreamReader sr = new StreamReader(myStream))
                        {
                            string line = null;
                            while((line = sr.ReadLine()) != null)
                            {
                                // TODO: Dodaj linię do listboxa.
                            }
                        }

                        listBox1.EndUpdate();
                    }
0

Dziękuję Ci bardzo za pomoc działa :-)

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