Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 10.04.2017
Сообщений: 29

Разобраться с ошибкой чтения из файла

11.04.2017, 16:57. Показов 2856. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Какого черта при переборе строк в классе файл
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
 
namespace Course_work
{
    public class File
    {
        string pathRead;
        string pathWrite;
        string h;
        int n;
        int length;
        double[] inputDataT;
        double[] outputDataT;
 
        public File(string PathRead, string PathWrite, int N)
        {
            pathRead = PathRead;
            pathWrite = PathWrite;
            n = N;
            GetInputData();
            if (n == 1)
                GetArithData();
            else
                GetSquareData();
            OutputFile();
        }
 
        public double[] InputDataT { get { return inputDataT; } }
        public double[] OutputDataT { get { return outputDataT; } }
 
        private void GetInputData()
        {
            FileStream fs = new FileStream(pathRead, FileMode.Open);
            StreamReader sr = new StreamReader(fs);
            if (int.TryParse(sr.ReadLine(), out length))
            {
                if (length > 2)
                {
                    h = sr.ReadLine();
                    inputDataT = new double[length];
                    try
                    {
                        for (int i = 0; i < length; i++)
                        {
                            double dataT;
                            if (double.TryParse(ConvertSep(sr.ReadLine().Split('\t')[1]), out dataT))
                            {
                                inputDataT[i] = dataT;
                            }
                            else
                            {
                                sr.Close();
                                fs.Close();
                                throw new Exception("В " + (i + 1) + " строке содержится ошибка.");
                            }
                        }
                        for (int i = 0; i < length; i++)
                        {
                            if (inputDataT[i] < 0)
                            {
                                sr.Close();
                                fs.Close();
                                throw new Exception("В массиве присутствуют отрицательные значения t.");
                            }
                        }
                    }
                    catch (EndOfStreamException)
                    {
                        sr.Close();
                        fs.Close();
                        throw new Exception("Количество измерений, указанное в файле, неверно.");
                    }
                    sr.Close();
                    fs.Close();
                }
                else
                    throw new Exception("Входной массив должен содержать, по крайней мере, 3 точки.");
            }
            else
                throw new Exception("Неверный формат количества измерений в файле.");
        }
 
        private void GetArithData()
        {
            outputDataT = new double[length];
            outputDataT[1] = inputDataT[1];
            outputDataT[length] = inputDataT[length];
            for (int i = 2; i < length - 1; i++)
            {
                outputDataT[i] = (inputDataT[i - 1] + inputDataT[i] + inputDataT[i + 1]) / 3;
            }
 
        }
 
        private void GetSquareData()
        {
            outputDataT = new double[length];
            outputDataT[1] = inputDataT[1];
            outputDataT[length] = inputDataT[length];
            for (int i = 2; i < length - 1; i++)
            {
                outputDataT[i] = Math.Sqrt((inputDataT[i - 1] + inputDataT[i] + inputDataT[i + 1]) / 3);
            }
 
        }
 
        private void OutputFile()
        {
            FileStream fs = new FileStream(pathWrite, FileMode.Create);
            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine("Количество строк: " + length);
            sw.WriteLine("Номер\tX\tt\tСглаженный");
            for (int i = 0; i < length; i++)
            {
                sw.WriteLine((i + 1).ToString() + "  " + Math.Round(inputDataT[i], 2).ToString() + "  " + Math.Round(outputDataT[i], 2).ToString());
            }
            sw.Close();
            fs.Close();
        }
 
 
        private string ConvertSep(string line)
        {
            if (System.Threading.Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberDecimalSeparator[0] == '.')
                return line.Replace(',', '.');
            return line.Replace('.', ',');
        }
 
    }
}
у меня вылезает ошибка, что во второй строке у меня содержится ошибка? вот пример файла входных данных
C#
1
2
3
4
5
6
7
8
9
10
8
x   t
0   0
5   11.61
10  29.62
12  46.28
-3  3.8
20  52.59
18.23   57.09
30  60.24
По сути, у меня сначала считывается вначале первая строчка с количеством измерений (строк), затем переменная h считывает заголовки колонок, а уже в цикле в массив считываются данные из второй колонки. Почему же вылезает ошибка: В 2 строчке есть ошибка.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.04.2017, 16:57
Ответы с готовыми решениями:

Не могу разобраться с ошибкой CS1955
Здравствуйте у меня в коде ошибка помогите вот код using System; using System.Collections.Generic; using System.Linq; using...

Каким образом после чтения из файла, узнать позицию для чтения следующего куска байт
Здравствуйте, задача такова есть файл, размером 1000 байт, нужно открыть его считать 100 байт, после чтения закрыть. Потом опять открыть...

Разобраться с ошибкой
Когда компилирую появляется вот такая ошибка.

21
0 / 0 / 0
Регистрация: 10.04.2017
Сообщений: 29
11.04.2017, 19:25  [ТС]
Студворк — интернет-сервис помощи студентам
aquaMakc, слишком много незнакомых слов)
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
11.04.2017, 20:49
Rapax, это просто. гораздо проще, чем вы пытаетесь сделать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.04.2017, 20:49

разобраться с ошибкой
x = linspace(-2,0.01,2); y = linspace(-3,0.02,3); =meshgrid(x,y); Z = (exp(-y.*x).*sin(2.*x))./(abs(3.*y)+(2.*x)+5); mesh(X,Y,Z)

Не могу разобраться с ошибкой
Программа ханойские башни, нужно что бы выводил графически. Но пишет вот такую ошибку Ошибка 1 error C1083: Не удается открыть файл...

Как разобраться с ошибкой
Только начинаю знакомство с ардуиной, и у меня проблема при загрузки скетча. Начну сначала. первый раз подключил ардуину загрузил тестовый...

Ошибка компиляции "undefined symbol : scrlin"
TITLE ALGLIN (EXE) ; вызов программы ;---------------------------------------- STACKSG SEGMENT PARA STACK 'Stack' ...

Не могу разобраться с ошибкой!
Выводит ошибку в этом коде на 5й строке. procedure TForm1.Button4Click(Sender: TObject); label 200; begin for i:=n downto 230 ...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru