Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C# Сделать запись в начало текстового файла, без переноса на новую строку http://www.cyberforum.ru/csharp-beginners/thread421610.html
есть текстовый файл, надо добавить в его начало его название, без новой строчки, то есть было привет стало имя файла, привет
C# Найти и вывести слово, содержащее наибольшее количество букв
Элементами слов могут быть любые символы. Найти и вывести слово, содержащее наибольшее количество букв..
C# Считывать информацию из файла, пропуская пустые строки
В общем никак не пойму в чём проблема.. Условие while не срабатывает,вот код: StreamReader file = new StreamReader(@a, Encoding.Default); List<string> str = new List<string>(); ...
C# Создать структуру классов, описывающую работу телевидения Используя объектно-ориентированный язык программирования (C#, Java)создать структуру классов описывающих модель Вашего варианта задания, реализовать декстоп приложение для работы с объектной... http://www.cyberforum.ru/csharp-beginners/thread421561.html
C# DataGridView не заполняется из DataTable, с DataSet работает как нужно http://www.cyberforum.ru/csharp-beginners/thread421560.html
Здравствуйте,специалисты! Подскажите пожалуйста, почему datagridview остается пустым? list = "Select * from tovar"; con.Open(); OleDbDataAdapter da = new...
C# Чтение файла в список. Отображение в метке информации по выбранному элементу
Всем доброго времени суток. Помогите.Есть файл с названиями товаров и его ценой.Название должно отображаться в выбрасываемом списке, а цена - в label при выборе товара.
Ограничить область перемещения объекта по форме C#
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void timer1_Tick(object sender, EventArgs e) ...
C# Создание нетабличных БД, их связь и возможность выгрузки данных Встал вопрос, как создать базу, в частности связи в базе, если фактически она не табличная. Тоесть, если мы создаём базу, в которой взаимосвязь идёт по принципу строка-столбец всё понятно(Пример:... http://www.cyberforum.ru/csharp-beginners/thread421465.html
C# Получение всех имен файлов в папке и во вложенных подпапках http://www.cyberforum.ru/csharp-beginners/thread421445.html
public partial class Form1 : Form { public Form1() { InitializeComponent(); } FolderBrowserDialog SFD = new FolderBrowserDialog(); ...
C# Тип данных "bool?" - что означает знак вопроса Здравствуйте! Читаю книгу по c#. В ней есть пример создания класса, в котором объявляется такое свойство: public bool? WillAttend { get; set; } Не могу понять, что означает знак вопроса после... http://www.cyberforum.ru/csharp-beginners/thread421430.html
KarmaMaker
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
04.01.2012, 16:43 0

Построчное чтение из файла. Разделение каждой строки на ФИО, ID и статус

04.01.2012, 16:43. Просмотров 3062. Ответов 14
Метки (Все метки)

Ответ

Написал так, как по моему мнению должно быть:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
using System;
using System.Xml;
using System.IO;
using System.Text;
using System.Collections.Generic;
 
namespace justForFun
{
    class MainClass
    {
        public static void Main()
        {
            // Создаем фвйловый поток 
            FileStream fileStream = new FileStream( "PersonList.xml", FileMode.Open );
            //Создаем XmlDocument 
            XmlDocument data = new XmlDocument();
            // Заливаем в него содержимое файла "PersonList.xml"
            data.Load(fileStream);
            fileStream.Close(); 
 
            // Создаем список человеков
            List<Person> personList = new List<Person>();
            
            // Заполняем список элементами с тегом Person
            XmlNodeList personInfoList = data.GetElementsByTagName("Person");
 
            // Заполняем список человеков
            foreach (XmlElement personInfo in personInfoList) 
            {
                string lastName = personInfo.GetAttribute( "lastname" );
                string firstName = personInfo.GetAttribute("firstname");
                string patronym = personInfo.GetAttribute("patronym");
                int cardNumber;
                // Сей блок нужен на случай если какойто вундеркинд попытается 
                // присвоить номеру карты значение "Гравицапа"
                try
                {
                    cardNumber = Int32.Parse(personInfo.GetAttribute("cardNumber"));
                }
                catch
                {
                    cardNumber = -1; // Something went wrong
                }
                string cardType = personInfo.GetAttribute("cardType");
                // Добавляем человека в список
                personList.Add(new Person(lastName, firstName, patronym, cardNumber, cardType));
            }
 
            // Выводим список человеков
            foreach (Person person in personList)
            {
                Console.WriteLine(person);
            }
 
 
            Console.WriteLine( "Введите номер банковской карты для поиска человека" );
            int somePersonCardNumber;
            while (true)
            {
                try
                {
                    somePersonCardNumber = Int32.Parse(Console.ReadLine());
                    break;
                }
                catch
                {
                    Console.WriteLine("Уберите кота с клавиатуры и попробуйте еще раз");
                }
            }
 
            Console.WriteLine("Найденный человек: " + findPersonByCardNumber(personList, somePersonCardNumber));
            Console.ReadLine();
        }
 
        // Поиск человека по номеру карты
        public static Person findPersonByCardNumber( List<Person> personList,int cardNumber )
        {
            Person foundPerson = null;
            foreach (Person person in personList) 
            {
                if (person.CardNumber == cardNumber)
                {
                    foundPerson = person;
                    break;
                }
            }
            return foundPerson;
        }
    }
 
    public class Person 
    {
        public Person( string lastName, string firstName, string patronym, int cardNumber, string cardType )
        {
            LastName = lastName;
            FirstName = firstName;
            Patronym = patronym;
            CardNumber = cardNumber;
            CardType = cardType;
        }
 
        public string LastName {get; private set;}
        public string FirstName { get; private set; }
        public string Patronym { get; private set; } // Отчество
        public int CardNumber { get; private set; }
        public string CardType { get; private set; } // Вообще лучше завести enum но пусть пока так
 
        public override string ToString()
        {
            string personInfo = LastName
                + " " + FirstName
                + " " + Patronym
                + " номер карты " + CardNumber
                + " тип карты " + CardType;
            return personInfo;
        } 
    }
}
Написал ибо
1) Хранение таких данных в текстовом файле, слишком уж легко и непринужденно, позволяет выстрелить себе в ногу ( больно так выстрелить ).
2) Хранение данных, после их считывания в двухмерном массиве - это идиотизм, достойный лучшего применения.
3) Just for fun.

Важно! Для запуска программы необходимо, чтобы рядом с exe - файлом лежал PersonList.xml следующего вида:

XML
1
2
3
4
5
6
<?xml version="1.0" encoding="Windows-1251"?>
<PersonList>
    <Person firstname = "Karm" patronym = "A" lastname = "Maker" cardNumber = "404" cardType = "premium" />
    <Person firstname = "Василий" patronym = "Семенович" lastname = "Пупкин" cardNumber = "253627" cardType = "gold" />
    <Person firstname = "Михаил" patronym = "Валерьевич" lastname = "Селедкин" cardNumber = "8945235" cardType = "platinum" />
</PersonList>


Вернуться к обсуждению:
Построчное чтение из файла. Разделение каждой строки на ФИО, ID и статус
1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2012, 16:43
Готовые ответы и решения:

Построчное чтение из файла до нужной строки
Доброго времени суток. И снова война с текстовым файлом. Суть куска программы: построчное чтение...

Построчное чтение файла в консоли - выводятся две строки подряд
Есть текстовый файл, в нём куча строчек. Читаю файл: foreach (string lr in File.ReadLines(path,...

Построчное чтение файла и разбор каждой 6-ой строки для получения и использования определённых данных
Добрый вечер! Необходимо прочитать текстовый файл в котором каждая 6-я строка начинается с TR01, в...

Построчное чтение из файла до первой пустой строки
Нужно прочитать файл построчно. В файле встречается одна строка пустая строка. Если она...

Построчное чтение файла со случайным выбором строки
Добрый день! Коллеги подскажите как реализовать средствами bat/cmd следующую задачу: есть некий...

14
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru