Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Cnoob
1 / 1 / 0
Регистрация: 10.01.2015
Сообщений: 46
#1

Заполнение массива данными из textbox

23.12.2015, 00:01. Просмотров 804. Ответов 5
Метки нет (Все метки)

Привет всем.
Задача такая: есть textbox(multiline), в который пользователь вводит двумерный массив(элементы через пробел, новая строка через '\n'). Нужно эти элементы занести в двумерный массив в таком виде, в котором пользователь их ввел в textbox чтобы потом можно было работать с элементами этого массива. С массивом будут проводиться различные манипуляции после чего его нужно будет вывести.
Пробовал решить задачу используя List, сначала весь массив из textbox перевожу в строку при помощи Split, после чего каждый элемент Split добавляю в List - выводит нормально все, но только если массив одномерный, если в textbox вводится 2+ строки (то есть присутствует переход на новую строку) тогда FormatException, понимаю, что проблема скорее всего в символе новой строки. Как быть?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2015, 00:01
Ответы с готовыми решениями:

Заполнение массива данными из нескольких textbox построчно
Нужно заполнить массив данными при нажатии на кнопку. Вводим данные в...

Заполнение datagridview данными из textbox
Доброго времени суток! У меня есть datagridview(данные в ней из БД SQL), а так...

Заполнение TextBox-а данными только при первом нажатии кнопки
мне надо чтобы я нажал на кнопку и textBox5 заполнился только один раз, в...

Заполнение textBox из массива
Добрый день. Подскажите как заполнить в цикле? textBox92.Text =...

Заполнение массива из TextBox
Почему при считывании массива из textbox , пишет необрабатываемое исключение ?...

5
Даценд
Модератор
Эксперт .NET
4105 / 3921 / 2596
Регистрация: 20.04.2015
Сообщений: 7,116
23.12.2015, 00:32 #2
как вариант:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
static int[,] getArray(string text)
{
    string[] lines = text.Split('\n');
    int[,] array = new int[lines.Length, lines[0].Split(' ').Count()];
    for (int i = 0; i < lines.Length; i++)
    {
        string[] numbersInLine = lines[i].Split(' ');
        for (int j = 0; j < numbersInLine.Length; j++)
        {
            array[i, j] = int.Parse(numbersInLine[j]);
        }
    }
    return array;
}
вызов:
C#
1
int[,] arr = getArray(textBox1.Text);
Конечно еще нужно добавить разные проверки.
0
Cnoob
1 / 1 / 0
Регистрация: 10.01.2015
Сообщений: 46
23.12.2015, 09:35  [ТС] #3
попробовал, но что-то не получается. Вставил ваш метод, вызвал в нужной функции таким образом как вы указали, при этом передал нужный textbox. Пытаюсь вывести и получаю: An unhandled exception of type 'System.IndexOutOfRangeException' occurred
0
Nooz
31 / 31 / 15
Регистрация: 22.10.2015
Сообщений: 100
23.12.2015, 11:02 #4
Думаю проблема уже в вашем коде вывода результата... Как вы выводите результат?
0
Даценд
Модератор
Эксперт .NET
4105 / 3921 / 2596
Регистрация: 20.04.2015
Сообщений: 7,116
23.12.2015, 11:13 #5
Лучший ответ Сообщение было отмечено Cnoob как решение

Решение

Попробуйте так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
static int[,] getArray(string text)
{
    string[] lines = text.Split(new char[] {'\n'}, StringSplitOptions.RemoveEmptyEntries);
    int[,] array = new int[lines.Length, lines[0].Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries).Count()];
    for (int i = 0; i < lines.Length; i++)
    {
        string[] numbersInLine = lines[i].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
        for (int j = 0; j < numbersInLine.Length; j++)
        {
            array[i, j] = int.Parse(numbersInLine[j]);
        }
    }
    return array;
}
Это уберет пустые строки. Если не получится, покажите свой код.
1
Cnoob
1 / 1 / 0
Регистрация: 10.01.2015
Сообщений: 46
23.12.2015, 13:01  [ТС] #6
Помогло, спасибо)
Можно закрывать
0
23.12.2015, 13:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2015, 13:01

Заполнение массива из Textbox
Нужно заполнить целочисленный массив из textbox, где числа перечислены через...

Заполнение массива значениями из textbox
Доброго времени суток. Появился такой вопрос. У меня на форме есть 16...

Заполнение одномерного массива из textbox
Подскажите пожалуйста! необходимо ввести поочередно ФИО рабочих в textbox,...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru