Wczytywanie pliku txt do listview

0

Witam! Jak w temacie mam problem z wczytaniem danych zawartych w pliku txt do listview w moim programie. Dane zawarte w notatniku mają format:
Jan Kowalski 45lat
Marta Wójcik 21 lat
itd

Teraz chciałbym aby każdy kolejny string z tego pliku wczytywał mi się do odpowiednich kolumn w listview. Nie wiem jednak jak to obsłużyć aby stringi wczytywały się do odpowiednich kolumn ( imie , nazwisko , wiek)

Z góry dzięki za pomoc .
Pozdrawiam

0

Udało mi się już wczytać kolejne linijki z pliku txt do mojej listview, niestety nie wiem jak poradzić sobie z podziałem tych linijek na 4 kolumny aby wpisywało mi kolejne dane do kolejnych kolumn , na razie wygląda to tak :

user image

zamieszczam kod funkcji wykonującej te zadanie :

private void wczytajbaze()
        {
            FileStream file= File.Open("baza.txt", FileMode.Open, FileAccess.Read);
            StreamReader sr = new StreamReader(file);
            string str = sr.ReadToEnd();
            String[] word = str.Split(';');
            foreach (string item in word)
            {
                listView1.Items.Add(item);
            }

            sr.Close();
            file.Close();
           
        }
 

Proszę o pomoc w zmodyfikowaniu powyższego kodu aby działał jak należy , Z góry dzięki za pomoc

1
foreach (var line in File.ReadLines(path))
{
   var data = line.Split(';');
   listView1.Items.Add(new ListViewItem(data));
} 
0

Działa! wielkie dzięki dla potomnych cała funkcja :

private void wczytajbaze()
        {
            FileStream file= File.Open("baza.txt", FileMode.Open, FileAccess.Read);
            file.Close();
            foreach (var line in File.ReadLines("baza.txt"))
            {
                var data = line.Split(';');
                listView1.Items.Add(new ListViewItem(data));
            }
            
0

Jaki masz dokładny format tego pliku?

U mnie na testowym pliku działało, tzn. wrzucało do innych kolumn.

1
userListView.Items.AddRange(File.ReadLines(pathToSourceFile).Select(line => new ListViewItem(line.Split(';'))).ToArray());

AddRange jest znacznie szybsze od Add w pętli.

0

a jak zmodyfikować tą pętlę , jeśli zawartość pliku txt jest w formie
Jan
Kowalski
231212

Anna
Nowak
213123

?

2

Wysil się, leniwy studencie. Być może zadziała poniższe:

userListView.Items.AddRange(File.ReadAllText(pathToSourceFile).Split(new[] { "\r\n\r\n" }, System.StringSplitOptions.RemoveEmptyEntries).Select(line => new ListViewItem(line.Split(new[] { "\r\n" }, System.StringSplitOptions.RemoveEmptyEntries))).ToArray());

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