• 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

VPS Starter Arubacloud
0 głosów
1,308 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 446 wizyt
0 głosów
1 odpowiedź 8,826 wizyt
–1 głos
2 odpowiedzi 618 wizyt
pytanie zadane 28 lutego 2016 w C i C++ przez Łukasz Kutyński Początkujący (330 p.)

92,452 zapytań

141,262 odpowiedzi

319,077 komentarzy

61,854 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...