Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 2
Регистрация: 18.05.2015
Сообщений: 82

Чтение из файла и запись в массив

30.09.2018, 14:57. Показов 2913. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Я застрял на приведении типов при чтении строки из файла и попытке записи ее элементов в List teacher.

Вот так у меня реализован класс:

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
 
class Academic : IPerson
    {
        public string Firstname { get; }
        public string Lastname { get; }
        public string Fathername { get; }
        public DateTime Date { get; }
        public string Depatment { get; }
        public float Experience { get; }
        public enum Position { Ассистент, Преподаватель, Доцент, Профессор }
 
        public Position position;
 
        public int Age()
        {
            DateTime date = DateTime.Now;
            int res = date.Year - Date.Year;
            if (date.Month > Date.Month)
                return res;
            else if (date.Month == Date.Month && date.Day > Date.Day)
                return res;
            else if (date.Day == Date.Day && date.Minute > Date.Minute)
                return res;
            else if (date.Minute == Date.Minute && date.Second > Date.Second)
                return res;
            else return res - 1;
        }
 
        public Academic(string lastname, string firstname, string fathername, DateTime date, DateTime age, string depatment, float experience, Position position)
        {
            Firstname = firstname;
            Lastname = lastname;
            Fathername = fathername;
            Date = date;
            Date = age;
            Depatment = depatment;
            Experience = experience;
            this.position = position;
        }
 
        public override string ToString()
        {
            return String.Format($"Фамилия: {Lastname,-20}" +
                                 $"Имя: {Firstname,-20}" +
                                 $"Отчество: {Fathername,-20} \n" +
                                 $"Дата рождения: {Date: MM-dd-yyyy} \t" +
                                 $"Возраст: {Age()} (год(-а)/лет) \n" +
                                 $"Кафедра: {Depatment} \t" +
                                 $"Стаж работы: {Experience:f1} (год(-а)/лет) \t" +
                                 $"Должность: {position} \t");
        }
    }

Далее, я пытаюсь считать строку из файла:

Петров Игорь Алексеевич 04.08.1997 02:23:16 ПМТ 8.7 Преподаватель

и записать ее в созданный за ранее List teacher:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Console.WriteLine("0 - Преподаватели\n1 - Студенты\n");
 
            int marker = int.Parse(Console.ReadLine());
            if (marker == 0)
            {
                StreamReader file = new StreamReader("D:\\Input.txt");
                List<Academic> teacher = new List<Academic>();
 
                for (int i = 0; file.EndOfStream == false; i++)
                {
                    string str = file.ReadLine();
                    string[] info = str.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                    DateTime date1 = DateTime.Parse(info[3] + " " + info[4]);
                    Academic.Position pos = Academic.Position.Parse(Academic.Position, info[7]); // в этой строке проблема с приведением типов
                    teacher.Add(new Academic(info[0], info[1], info[2], date1, date1, info[5], float.Parse(info[6]), pos));
                }
            }
У меня написано не верно, но перепробовал много вариантов и не нашел правильный. Подскажите, как сделать верно и почему. Спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.09.2018, 14:57
Ответы с готовыми решениями:

Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран
1.Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран 2.Ввод с клавиатуры и запись в массив,...

Чтение из файла и запись в массив
Есть текстовый файл с содержанием фамилии, занятого места и количества набранных баллов: Тик : 1 : 100 Вит : 10 : 10 Кип : 7 : 40 ...

Чтение из файла и запись в массив
Доброго времени суток. Не получается записать содержимое файла в массив для поиска максимального значения Содержимое файла: 1 2 3 4 5 6...

1
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
30.09.2018, 15:58
Лучший ответ Сообщение было отмечено ronital как решение

Решение

ronital, Для седьмой версии языка используйте синтаксис
C#
1
Enum.TryParse(info[7], out Academic.Position pos);
в старых версиях можно через приведение типов:
C#
1
Academic.Position pos = (Academic.Position)Enum.Parse(typeof(Academic.Position), info[7]);
А лучше используйте List.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.09.2018, 15:58
Помогаю со студенческими работами здесь

Чтение из файла и запись в массив
Здравствуйте! Проблема такая ... не работает программа скорее всего потому что не могу передать массив. в си передается через указатели а...

Чтение из файла и запись в массив на с++
Добрый день. Хотелось бы попросить помощи. Необходимо считать данные из файла(данные измерений в виде матрицы - числа типа double....

Чтение матрицы из файла и запись её в массив
Всем доброго времени суток, имеется файл 00011122331100 00000000000000 00012000000000 00003040010000 00200000020000 Величина...

Чтение чисел из файла и запись в массив
В общем надо записать числа из файла в массив я написал код, но вот не могу понять почему значения массива остаются равными 0, хелпаните...

Запись файла в массив и чтение из него
#include &lt;conio.h&gt; #include &lt;stdio.h&gt; void vvodznach ( int n, int m, double A ) { int i, j; for ( i = 0; i...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru