Wczytywanie pliku txt do listview

Odpowiedz Nowy wątek
2016-06-11 00:40
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

Windows Forms czy WPF? - ness 2016-06-11 12:26
Windows Forms - mkami11 2016-06-11 13:22

Pozostało 580 znaków

2016-06-11 12:50
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

  • 213.PNG (0,02 MB) - ściągnięć: 52
edytowany 1x, ostatnio: mkami11, 2016-06-11 12:51

Pozostało 580 znaków

2016-06-11 13:49
1
foreach (var line in File.ReadLines(path))
{
   var data = line.Split(';');
   listView1.Items.Add(new ListViewItem(data));
} 
edytowany 1x, ostatnio: some_ONE, 2016-06-11 13:49

Pozostało 580 znaków

2016-06-11 14:32
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));
            }
edytowany 2x, ostatnio: mkami11, 2016-06-11 14:36
a do czego ta zmienna "file"? - tajny_agent 2016-06-11 16:04

Pozostało 580 znaków

2016-06-11 14:33
0

Jaki masz dokładny format tego pliku?

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

już jest dobrze , wcześniej nie miałem ";" pomiędzy każdym wyrazem tylko na końcu linii - mkami11 2016-06-11 14:35

Pozostało 580 znaków

2016-06-13 11:47
ŁF
1
userListView.Items.AddRange(File.ReadLines(pathToSourceFile).Select(line => new ListViewItem(line.Split(';'))).ToArray());

AddRange jest znacznie szybsze od Add w pętli.


edytowany 1x, ostatnio: ŁF, 2016-06-13 11:48
Jak na szybko sprawdziłem to wyszło 10x szybciej, tego się nie spodziewałem :P - some_ONE 2016-06-13 19:51
Pewnie jeśli dodawanie itemów zamkniesz w Begin/EndUpdate to nie będzie już x10, ale na pewno i tak będzie szybciej. - ŁF 2016-06-13 23:26

Pozostało 580 znaków

2016-06-13 12:53
Pijany Kaczor
0

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

Anna
Nowak
213123

?

Pozostało 580 znaków

2016-06-14 15:31
ŁF
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());

edytowany 1x, ostatnio: ŁF, 2016-06-14 16:57
Pokaż pozostałe 2 komentarze
pewnie że warto by było go zmusić .... panoszy się to wszędzie i zamiast się wziąć za program na tydzień przed piszą w ostatniej chwili i liczą na cuda - grymay 2016-06-14 17:42
btw. jak korzystasz z tej funkcji to w jakiej pętli ? - grymay 2016-06-14 17:43
Którą metodę masz na myśli i o jakiej pętli mowa? - ŁF 2016-06-14 20:14
tą z Addrange , nie wiem za bardzo co tam się dzieje "\r\n" oznacza przeskakiwanie do nowej linii? - grymay 2016-06-14 22:44
Rozbicie na elementy tablicy na podstawie pewnego ciągu znaków. Tym ciągiem znaków jest \r\n, który pod Windows oznacza NL - przejście do nowej linijki. Wiesz, że mogłeś to znaleźć na google w kilkanaście sekund? - ŁF 2016-06-15 10:37

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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