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

Прочитать данные из файла в массив

10.04.2017, 19:15. Показов 4159. Ответов 7

Студворк — интернет-сервис помощи студентам
Добрый день!
Пишу курсовую работу. Возникла такая проблема, никак не могу разобраться.
На вход программы подается массив, состоящий из N строк и 2х столбцов. Знак разделитель - точка. Разделитель столбцов - пробел или запятая.
Программа должна считывать исходный массив из файла и позволять сохранять на диск преобразованный массив в формате .txt.
Помогите, пожалуйста. Как запихнуть эти данные из файла в массив, при этом проверив, что во втором столбце нет отрицательных значений, у каждого значения первого столбика есть значение из второго, нет букв, пробелов и др. символов и что строк в массив должно быть не менее трех?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.04.2017, 19:15
Ответы с готовыми решениями:

Прочитать данные из файла
Есть файл, созданный в программе PRO100. в котором хранится описание 3D модели мебельного изделия (корпусная мебель). Подскажите как мне...

Открыть и прочитать данные wave файла
есть wave файл. Надо его открыть и или в текстовом формате, или в массиве получить последовательность амплитуд. Исходя из большинства...

Как прочитать данные из файла и занести их в класс
Здравствуйте. Мне необходима ваша помощь в следующем вопросе. У меня имеется файл текстовый файл,в котором хранятся данные. Примерное...

7
 Аватар для MAXONline
3 / 3 / 0
Регистрация: 15.12.2014
Сообщений: 77
10.04.2017, 19:57
То есть на входе:
123.123 asdf.asdas asdasd.asdasd

если так. То разбей сначала по пробелу.
C#
1
2
string text = "123.123 asdf.asdas asdasd.asdasd";
int[] Stroka = text.Split(' ');
потом на ячейки также используя for и Stroka.Length
Как-то так.

а дальше со значениями работай. ( лучше сначала все забей в datagridview или еще во что нибудь, А потом проверяй и тд.) Меньше путаницы будет.
число строк ты получишь вот этим Stroka.Length.
0
0 / 0 / 0
Регистрация: 10.04.2017
Сообщений: 29
10.04.2017, 20:25  [ТС]
MAXONline,
пример массива (файла):
0 0
5 11.61
10 29.62
12 46.28
-3 3.8
20 52.59
18.23 57.09
30 60.24
Я не понимаю, как эти данные из файла запихнуть в массивы, чтобы затем преобразовать, как мне нужно и выгрузить уже новые массивы в файл. И как учесть, что в массиве должны быть только числа и что каждому значению из левого столбика соответствует значение из второго?

Добавлено через 21 минуту
Помогите, ребятки, пожалуйста!) Я очень плохо во всем этом разбираюсь)
0
 Аватар для MAXONline
3 / 3 / 0
Регистрация: 15.12.2014
Сообщений: 77
10.04.2017, 20:35
Цитата Сообщение от Rapax Посмотреть сообщение
Я не понимаю, как эти данные из файла запихнуть в массивы
Используй Split

Цитата Сообщение от Rapax Посмотреть сообщение
как мне нужно и выгрузить уже новые массивы в файл
streamwriter

Цитата Сообщение от Rapax Посмотреть сообщение
что в массиве должны быть только числа и что каждому значению из левого столбика соответствует значение из второго?
Как проверить, является ли эта строка числом?
А соответствие простым перебором.

Сначала забей данные в datagridview чтобы было наглядно и удобно. А там с ячейками работай.
Вот тут наглядно все
https://msdn.microsoft.com/ru-... .110).aspx
0
0 / 0 / 0
Регистрация: 10.04.2017
Сообщений: 29
10.04.2017, 20:54  [ТС]
MAXONline, хорошо, сейчас что-нибудь попробую

Добавлено через 3 минуты
MAXONline, а если делать через OpenFileDialog и SaveFileDialog? т.е. сам выбираю файл на компьютере и сам выбираю куда сохранять. Как в таком случае мне обратиться к данным файла?

Добавлено через 39 секунд
Еще раз извините за мою тупость, я вообще не силен в программировании)
0
 Аватар для MAXONline
3 / 3 / 0
Регистрация: 15.12.2014
Сообщений: 77
10.04.2017, 21:12
Да не парься все такие были=))

Цитата Сообщение от Rapax Посмотреть сообщение
а если делать через OpenFileDialog и SaveFileDialog? т.е. сам выбираю файл на компьютере и сам выбираю куда сохранять. Как в таком случае мне обратиться к данным файла?
Из диалога ты путь возьмешь до директории.
C#
1
2
3
4
5
string[] s = System.IO.File.ReadAllLines("путь до файла", Encoding.Default);
StreamWriter zapis = new StreamWriter("Путь до файла"); 
string text ="Что надо записать"; 
zapis.WriteLine(text);
zapis.Close()
WriteLine пишет 1 строчку еcли еще до конца потока забьешь 2 строчку напишет и тд.
читать s[0] первая стр s[1] вторая и тд. Он все строки в массив забьет.
0
0 / 0 / 0
Регистрация: 10.04.2017
Сообщений: 29
11.04.2017, 15:14  [ТС]
MAXONline, я начал потихоньку разбираться. Вот мой код
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
private void GetInputData()
        {
            FileStream fs = new FileStream(pathRead, FileMode.Open);
            StreamReader sr = new StreamReader(fs);
            if (int.TryParse(ConvertSep(sr.ReadLine()), out length))
            {
                sr.ReadLine();
                inputDataX = new double[length];
                inputDataT = new double[length];
                try
                {
                    for (int i = 0; i < length; i++)
                    {
                        double dataX;
                        double dataT;
                        if ((double.TryParse(ConvertSep(sr.ReadLine()), out dataX)) && (double.TryParse(ConvertSep(sr.ReadLine().Split(' ', '\t')[1]), out dataT)))
                        {
                            inputDataX[i] = dataX;
                            inputDataT[i] = dataT;
                        }
                        else
                        {
                            sr.Close();
                            fs.Close();
                            throw new Exception("В " + (i + 1) + " строке содержится ошибка.");
                        }
                    }
                }
                catch (EndOfStreamException)
                {
                    sr.Close();
                    fs.Close();
                    throw new Exception("Количество измерений, указанное в файле, неверно.");
                }
                sr.Close();
                fs.Close();
            }
            else
                throw new Exception("Неверный формат количества измерений в файле.");
        }
Но теперь вопрос. Как Создать массив из первого столбика?) Через сплит я запомнил второй столбец в inputDataТ, однако если я правильно понимаю, inputDataХ будет заполнен целыми строками из файла. Плиз хелп!)

Добавлено через 1 минуту
C#
1
2
3
4
5
6
        private string ConvertSep(string line) //Проверка десятиченого разделителя
        {
            if (System.Threading.Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberDecimalSeparator[0] == '.')
                return line.Replace(',', '.');
            return line.Replace('.', ',');
        }
Добавлено через 3 минуты
Проще говоря, вопрос: как считать строку до пробела ?

Добавлено через 9 часов 33 минуты
вернитесь, умные люди)

Добавлено через 12 минут
как считать строку до пробела ?
памагите!)))

Добавлено через 6 часов 41 минуту
спасите, люди добрые)
0
 Аватар для MAXONline
3 / 3 / 0
Регистрация: 15.12.2014
Сообщений: 77
11.04.2017, 18:26
Ты считываешь всю строчку. Если тебе надо до пробелов. То также разбей просто строчку на массив и все.

Добавлено через 2 минуты
Вот у тебя входные данные
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.04.2017, 18:26
Помогаю со студенческими работами здесь

Прочитать данные из файла в переменную после его обновления
public DateTime LastWriteTime- как использовать на Windows Form ? String inf = File.ReadAllText(@&quot;C:\123.doc&quot;);

Прочитать в массив все байты из файла
//1.0 Читаем из файла в массив двоичные данные *.pas* FileStream Streem1 = new FileStream(&quot;Input.pas&quot;,...

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

Как прочитать данные из файла в массив
Необходимо прочитать данные из файла input.txt файл представляет из себя: 101100 010110 111111 и тд нодо данный файл прочиать в...

Прочитать из текстового файла данные в массив структур
Структура типа: Фамилия,логин,пароль,роль(администратор, модератор, простой пользователь) Не могу понять как прочитать из текстового...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru