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

Вытащить числа из первого столбца в .txt файле

11.04.2017, 17:53. Показов 588. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вообщем, у меня есть вот такой класс
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
С помощью сплита я вытащил значения из второго столбца (отделенного пробелом от первого). Если что-то подобное, чтобы я мог вытащить значения из первого столбца (т.е. до пробела)? или нужно создавать дополнительный массив, в него сохранять данные второго и во второй записывать данные первого? есть ли что-то попроще, как сплит?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.04.2017, 17:53
Ответы с готовыми решениями:

Переписать компоненты файла 1.txt в файл 3.txt так, чтобы в файле 3.txt числа шли в определенном порядке
Дан файл 1.txt, компоненты которого являются целыми числами.Файл 1.txt содержит столько же отрицательных чисел, сколько положительных....

Ввести числа и записать их в файл D1.txt и в файле D2.txt найти числа делящиеся на 2
Ввести числа и записать их в файл D1.txt и в файле D2.txt найти числа делящиеся на 2.

Как отсортировать строки в txt-файле(130.000 строк) по маске до первого пробела(разделителя)?
Помогите отсортировать строки в txt-файле(130.000 строк) по маске до первого пробела(разделителя)? Структура строки: вначале Код ...

2
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
11.04.2017, 18:08
ничего не понял из вопроса, .Split()[0] - то, что до пробела, .Split()[1] - то, что после
1
0 / 0 / 0
Регистрация: 10.04.2017
Сообщений: 29
11.04.2017, 18:12  [ТС]
Diamante, Все, понял, это я тупой) большое спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.04.2017, 18:12
Помогаю со студенческими работами здесь

Нужно вытащить числа из строки в текстовом файле (в переменные)
Здравствуйте, проблема такова: есть текстовый файл Product.txt в котором содержится 4 строки: 1 - товар4 - 123456 2 - товар3 - 789123 ...

Нахождение нужного числа в .txt файле
Привет всем :-) Опять пишу тут программу, но не знаю как найти то или иное число после сортировки? Заранее Спасибо. Знаю, что нужно...

В файле input.txt записаны числа, сколько их – неизвестно
В файле input.txt записаны числа, сколько их – неизвестно. 1: Найти среднее арифметическое всех чисел и записать его в файл...

Удалить в текстовом файле 1.txt все строки, которые встречаются в текстовом файле 2.txt
например имеется текстовый файл 1.txt c таким содержанием 111 222 333 444 555 и имеется текстовый файл 2.txt c таким...

Вычислить корень 4-ой степени от числа, содержащегося в файле «text.txt».
help!!!!! 1. Вычислить корень 4-ой степени от числа, содержащегося в файле «text.txt». Проверить число на знак, если число отрицательное,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru