Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
47 / 2 / 0
Регистрация: 25.12.2017
Сообщений: 424

Чтения из файла

09.09.2019, 19:04. Показов 623. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал программу на C# Windows Forms и там пошла ошибка чтения из файла, 47 и 55-57 строка в файлике ниже.

code.rar

Код программы:
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
 
namespace alrlr1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        struct data
        {
            public string nameP, Surname;
            public double Score;
        }
        data[] s = new data[10];
 
 
        private void per(int i, int j)
        {
            string tempS, tempN;
            double tempSc;
            tempS = s[j].Surname;
            tempN = s[j].nameP;
            tempSc = s[j].Score;
            s[j].Surname = s[i].Surname;
            s[j].nameP = s[i].nameP;
            s[j].Score = s[i].Score;
            s[i].Surname = tempS;
            s[i].nameP = tempN;
            s[i].Score = tempSc;
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            dataGridView1.Rows.Clear();
            using (BinaryReader reader = new BinaryReader(File.Open("F:/2.bin", FileMode.Open)))
            {
                reader.BaseStream.Position = 0;
                int i = 0;
                do
                {
                    if (i != 10)
                    {
                        s[i].Surname = reader.ReadString();
                        s[i].nameP = reader.ReadString();
                        s[i].Score = reader.ReadDouble();
                    }
                    else
                        break;
                    i++;
                } while (true);
            }
 
 
 
            for (int i = 0; i < 10; i++)
            {
                dataGridView1.Rows.Add();
                dataGridView1.Rows[i].Height = 30;
                dataGridView1.Rows[i].Cells[0].Value = s[i].Surname;
                dataGridView1.Rows[i].Cells[2].Value = s[i].Score;
                dataGridView1.Rows[i].Cells[1].Value = s[i].nameP;
            }
            this.Text = "";
            this.ShowIcon = false;
        }
 
        private void Button1_Click(object sender, EventArgs e)
        {
 
            for (int i = 0; i < 10; i++)
                for (int j = i + 1; j < 10; j++)
                    if (s[i].Score < s[j].Score)
                        per(i, j);
            dataGridView1.Rows.Clear();
            for (int i = 0; i < 10; i++)
            {
                dataGridView1.Rows.Add();
                dataGridView1.Rows[i].Height = 30;
                dataGridView1.Rows[i].Cells[0].Value = s[i].Surname;
                dataGridView1.Rows[i].Cells[2].Value = s[i].Score;
                dataGridView1.Rows[i].Cells[1].Value = s[i].nameP;
            }
        }
 
        private void Button2_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < 10; i++)
                for (int j = i + 1; j < 10; j++)
                {
                    if (Convert.ToInt32(s[i].Surname[0]) == Convert.ToInt32(s[j].Surname[0]))
                    {
                        int z = 0;
                        do
                        {
                            z++;
                            if (Convert.ToInt32(s[i].Surname[z]) > Convert.ToInt32(s[j].Surname[z]))
                            {
                                per(i, j);
                                break;
                            }
                            if (Convert.ToInt32(s[i].Surname[z]) < Convert.ToInt32(s[j].Surname[z]))
                                break;
                        } while (true);
                    }
                    if (Convert.ToInt32(s[i].Surname[0]) > Convert.ToInt32(s[j].Surname[0]))
                        per(i, j);
                }
 
            dataGridView1.Rows.Clear();
            for (int i = 0; i < 10; i++)
            {
                dataGridView1.Rows.Add();
                dataGridView1.Rows[i].Height = 30;
                dataGridView1.Rows[i].Cells[0].Value = s[i].Surname;
                dataGridView1.Rows[i].Cells[2].Value = s[i].Score;
                dataGridView1.Rows[i].Cells[1].Value = s[i].nameP;
            }
        }
 
        private void Button3_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < 10; i++)
                for (int j = i + 1; j < 10; j++)
                {
                    if (Convert.ToInt32(s[i].nameP[0]) == Convert.ToInt32(s[j].nameP[0]))
                    {
                        int z = 0;
                        do
                        {
                            z++;
                            if (Convert.ToInt32(s[i].nameP[z]) > Convert.ToInt32(s[j].nameP[z]))
                            {
                                per(i, j);
                                break;
                            }
                            if (Convert.ToInt32(s[i].nameP[z]) < Convert.ToInt32(s[j].nameP[z]))
                                break;
                        } while (true);
                    }
                    if (Convert.ToInt32(s[i].nameP[0]) > Convert.ToInt32(s[j].nameP[0]))
                        per(i, j);
                }
 
            dataGridView1.Rows.Clear();
            for (int i = 0; i < 10; i++)
            {
                dataGridView1.Rows.Add();
                dataGridView1.Rows[i].Height = 30;
                dataGridView1.Rows[i].Cells[0].Value = s[i].Surname;
                dataGridView1.Rows[i].Cells[2].Value = s[i].Score;
                dataGridView1.Rows[i].Cells[1].Value = s[i].nameP;
            }
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.09.2019, 19:04
Ответы с готовыми решениями:

Ошибка чтения xls-файла
Хелп плиз! При попытке использования xls-файла выскакивает сообщение об ошибке Interop type...

Разобраться с ошибкой чтения из файла
Какого черта при переборе строк в классе файл using System; using System.Collections.Generic; using System.Linq; using System.Text;...

Открытие файла для чтения
Делаю программу для расчета задачи, результат вычислений записывается в выходной файл Excel. Как сделать открытие файла с формы (у меня...

9
47 / 2 / 0
Регистрация: 25.12.2017
Сообщений: 424
09.09.2019, 19:05  [ТС]
Суть задание это сортировка столбцов методом пузыря.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18304 / 14228 / 5368
Регистрация: 17.03.2014
Сообщений: 28,902
Записей в блоге: 1
12.09.2019, 10:46
Shelleex1337, какая именно ошибка?
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
12.09.2019, 12:32
в 47 неправильный путь
ну а в 55-57, видимо, попытка чтения из файла, которого не существует
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18304 / 14228 / 5368
Регистрация: 17.03.2014
Сообщений: 28,902
Записей в блоге: 1
12.09.2019, 16:15
Цитата Сообщение от Diamante Посмотреть сообщение
в 47 неправильный путь
Если ты про слеши, то путь верный. В пути можно использовать и обратный и прямой слеш.
0
47 / 2 / 0
Регистрация: 25.12.2017
Сообщений: 424
12.09.2019, 16:17  [ТС]
OwenGlendower, там уже проблема с читкой файла
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18304 / 14228 / 5368
Регистрация: 17.03.2014
Сообщений: 28,902
Записей в блоге: 1
12.09.2019, 16:19
Shelleex1337, какая именно проблема?
0
47 / 2 / 0
Регистрация: 25.12.2017
Сообщений: 424
12.09.2019, 16:45  [ТС]
OwenGlendower, я не могу прочитать из файла данные

Запись в бинарный файл
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18304 / 14228 / 5368
Регистрация: 17.03.2014
Сообщений: 28,902
Записей в блоге: 1
12.09.2019, 17:20
Shelleex1337, значит файл неверно был записан. Убедись что поля записываются в том же порядке что и читаются. И что для записи строк был использован метод Write класса BinaryWriter.

Добавлено через 4 минуты
Shelleex1337, еще чтение лучше переделать так чтобы не было жесткой привязки к количеству элементов
C#
1
2
3
4
5
6
7
8
9
10
11
12
s = new List<data>();
using (BinaryReader reader = new BinaryReader(File.Open(path, FileMode.Open)))
{
    do
    {
        var item = new data();
        item.sport = reader.ReadString();
        item.kval = reader.ReadString();
        item.Score = reader.ReadDouble();
        s.Add(item);
    } while (reader.BaseStream.Position < reader.BaseStream.Length);
}
Тип поля s нужно изменить на List<data>. И еще я бы заменил struct на class.
0
47 / 2 / 0
Регистрация: 25.12.2017
Сообщений: 424
12.09.2019, 17:53  [ТС]
OwenGlendower, можете помочь пожалуйста? Не могу никак сделать считку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.09.2019, 17:53
Помогаю со студенческими работами здесь

Проблема чтения DBF файла
Приветствую всех кто это читает! У меня есть траб с чтение DBF файла. Вроде все идет хорошо до момента запроса к таблице, а проблема в том,...

Задать кодировку чтения у xml файла
Такая проблема xml файл в кодировке UTF-7. Читаю его с помощью XmlDocument doc = new XmlDocument(); ...

Перегрузка оператора >> для чтения из файла
Приветствую друзья. Я создал класс Products и в нем метод для заполнения listView данными с файла. Но мне нужно перегрузить оператор...

System.IO.Opeb.Text - автоматизация чтения файла
Добрый вечер товарищи, вот столкнулся с загвоздкой в char, вот ниже в строках показан исходный текст который содержится в файле, писал от...

ProgressBar состояние чтения файла - работы кода
Доброго времени суток. Имеется код обработки richTextBox: //Анализируем открытый нами текст private void...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой
Programma_Boinc 10.04.2026
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой Если на Windows стоит дискретная NVIDIA или AMD — можно отдать её вычислительную мощность реальным исследованиям. . . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru