• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C#,wczytywanie z pliku do listy i wypisywanie na ekranie

Aruba Cloud - Virtual Private Server VPS
0 głosów
1,442 wizyt
pytanie zadane 10 marca 2018 w C i C++ przez Krystek102 Bywalec (2,440 p.)
edycja 10 marca 2018 przez Krystek102

Witam,muszę wczytać z pliku do list dane i wypisac je na ekranie ,w każdym wierszu pliku mam :imie,nazwisko,wiek,skutecznośc.Prosze o pomoc gdyż nwm co robię źle ,jestem początkujący w C# i może czegoś nie widzę 

oto kod:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading.Tasks;
using System.Globalization;

namespace ConsoleApp1
{
    class Program
    {
       
        static void Main(string[] args)
        {
            Console.WriteLine("Podaj nazwe pliku do otwarcia: ");
            string nazwa = Console.ReadLine();
            Console.WriteLine(nazwa);

            List<string> imiona = new List<string>();
            List<string> nazwiska = new List<string>();
            List<int> wiek = new List<int>();
            List<float> skutecznosc = new List<float>();

            String line;
            StreamReader sr = new StreamReader(nazwa);
            NumberFormatInfo nfi = new NumberFormatInfo();
            nfi.NumberGroupSeparator = " ";

            while ((line = sr.ReadLine()) != null)
            {
               
                string[] s = line.Split(null);
                string imie = s[0];
                string nazwisko = s[1];
                int d = int.Parse(s[2], nfi);
                float f = float.Parse(s[3], nfi);


                imiona.Add(imie);
                Console.WriteLine(imiona);
                nazwiska.Add(nazwisko);
                Console.WriteLine(nazwiska);
                wiek.Add(d);
                Console.WriteLine(wiek);
                skutecznosc.Add(f);
                Console.WriteLine(skutecznosc);

            } sr.Close(); ;
             Console.ReadKey();

           
            }

        }
    }

}

 

1 odpowiedź

0 głosów
odpowiedź 10 marca 2018 przez hun1er76 Stary wyjadacz (11,960 p.)
edycja 10 marca 2018 przez hun1er76

Ale na czym polega problem? Poza tym wypadałoby pokazać strukturę danych pliku. Po tym co napisałeś wynika, że poszczególne pola w pliku oddzielone są przecinkami, pasowałoby zatem uwzględnić to w kodzie (dlaczego parametr metody String.Split jest null). Swoją drogą mówisz, że musisz wczytać dane do listy a robisz to do aż 4. Poczytaj sobie o podejściu obiektowym.

using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;

namespace ConsoleApp1
{
    class Person
    {
        public string Name { get; set; }
        public string Surname { get; set; }
        public int Age { get; set; }
        public float Effectivity { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Podaj nazwe pliku do otwarcia: ");
            string fileName = Console.ReadLine();

            List<Person> people = new List<Person>();

            String line;
            StreamReader sr = new StreamReader(fileName);
            while ((line = sr.ReadLine()) != null)
            {
                
                string[] s = line.Split(",");
                var person = new Person
                {
                    Name = s[0],
                    Surname = s[1],
                    Age = int.Parse(s[2]),
                    Effectivity = float.Parse(s[3], CultureInfo.InvariantCulture)
                };

                Console.WriteLine($"Imię: {person.Name}, Nazwisko: {person.Surname}, Wiek: {person.Age}, Skuteczność: {person.Effectivity}");
                people.Add(person);
            }
            sr.Close();
            Console.ReadKey();
        }
    }
}
Jan,Kowalski,25,40.50
Jacek,Nowak,18,56.78
Marta,Kwiatkowska,45,80
...

 

komentarz 10 marca 2018 przez Krystek102 Bywalec (2,440 p.)
mój błąd,mam wczytać dane do list,nie listy i wypisać je na ekranie
komentarz 11 marca 2018 przez hun1er76 Stary wyjadacz (11,960 p.)
No to sobie już chyba poradzisz ;)

Podobne pytania

0 głosów
3 odpowiedzi 572 wizyt
0 głosów
1 odpowiedź 9,718 wizyt
–1 głos
2 odpowiedzi 790 wizyt
pytanie zadane 28 lutego 2016 w C i C++ przez Łukasz Kutyński Początkujący (330 p.)

93,324 zapytań

142,323 odpowiedzi

322,389 komentarzy

62,652 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...