Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 05.05.2012
Сообщений: 34
.NET 4.x

Запись в двумерный массив из Split

06.08.2013, 19:43. Показов 4027. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Все эти строки приходят через post запрос 1'ой срокой!
Их разделяет ":". 0'вой элемент приходит пустым по этому я начинаю работать с 1 элемента.
Code
1
2
3
4
5
6
:Строка 1 < 4961feea0f51653e4a54b8db39dffe0c
:Строка 2 < 9e1155e8ad56b661861297a5409ff37f
:Строка 3 < 3a0efc05c330175e580925ad950f9d21
:Строка 4 < c25a68f1136b433df0318613e4b19000
:Строка 5 < 5ebe921ea2d5a24803a9782dfffec9ea
:Строка 6 < f83537a37492d7fc2789ddb2c6131b0f
Нужно записать эти данные в двумерный массив
Code
1
2
3
4
massiv[1,1] = "Строка 1"; massiv[1,2] = "4961feea0f51653e4a54b8db39dffe0c"; 
massiv[2,1] = "Строка 2"; massiv[2,2] = "9e1155e8ad56b661861297a5409ff37f"; 
massiv[3,1] = "Строка 3"; massiv[3,2] = "3a0efc05c330175e580925ad950f9d21"; 
.....
Сначала я разбиваю их на сроки в одномерный массив:
C#
1
 string[] res = request(host + scriptdir + "/update.php").Split(new Char[] { ':' });
C#
1
2
3
4
5
6
massiv[1] = "Строка 1 < 4961feea0f51653e4a54b8db39dffe0c";
massiv[2] = "Строка 2 < 9e1155e8ad56b661861297a5409ff37f";
massiv[3] = "Строка 3 < 3a0efc05c330175e580925ad950f9d21";
massiv[4] = "Строка 4 < c25a68f1136b433df0318613e4b19000";
massiv[5] = "Строка 5 < 5ebe921ea2d5a24803a9782dfffec9ea";
massiv[6] = "Строка 6 < f83537a37492d7fc2789ddb2c6131b0f";
Далее начинаются проблемы. Мне надо этот одномерный массив разложить в двумерный на
Code
1
2
3
4
massiv[1,1] = "Строка 1"; massiv[1,2] = "4961feea0f51653e4a54b8db39dffe0c"; 
massiv[2,1] = "Строка 2"; massiv[2,2] = "9e1155e8ad56b661861297a5409ff37f"; 
massiv[3,1] = "Строка 3"; massiv[3,2] = "3a0efc05c330175e580925ad950f9d21"; 
.....
Я это делаю через Split, где i=1 по циклу i++ присваивается номер строки:
C#
1
res[i].Split(new Char[] { '<' });
я не знаю как это присвоить двумерному массиву где количество столбцов n = 2;

Вот что то пытался сделать....

C#
1
2
3
4
5
6
7
8
9
   for (int i = 1; i < res.Length - 1; i++)
            {
                for (int j = 1; j < 2; j++)
                {
                    string[] tmp = res[i].Split(new Char[] { '<' });
                    hostmd5[i, j] = tmp[j];
                }
 
            }
Может быть есть какие то способы передавать данные сразу из Split'а но я не знаю.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.08.2013, 19:43
Ответы с готовыми решениями:

Чтение из текстового файла и запись в массив. Разбиение массива строк на 4 массива. Split
Необходимо считать данные из файла в 4 массива. внутри файла текст такого типа ...

Запись строки в двумерный массив
производится чтение файла типа: 6 2 012123101212210321123012212101321210 010100100500000061150013006101001310 string line =...

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

3
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
06.08.2013, 20:59
Если так хочется напрямую из Split, то как-то так:
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
using System;
using System.Linq;
 
namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] source = new string[]
            {
                ":Строка 1 < 4961feea0f51653e4a54b8db39dffe0c",
                ":Строка 2 < 9e1155e8ad56b661861297a5409ff37f",
                ":Строка 3 < 3a0efc05c330175e580925ad950f9d21",
                ":Строка 4 < c25a68f1136b433df0318613e4b19000",
                ":Строка 5 < 5ebe921ea2d5a24803a9782dfffec9ea",
                ":Строка 6 < f83537a37492d7fc2789ddb2c6131b0f"
            };
 
            var splitArray = source.Split('<');
 
            for (int i = 0; i < splitArray.GetLength(0); i++)
                Console.WriteLine("{0} - {1}", splitArray[i, 0], splitArray[i, 1]);
 
            Console.ReadKey(true);
 
        }
    }
 
    public static class StringExtension
    {
        public static string[,] Split(this string[] source, char separator)
        {
            string[,] result = new string[source.Length, 2];
 
            for (int i = 0; i < source.Length; i++)
            {
                var splitter = source[i].Split(separator);
 
                if (splitter.Length == 1)
                {
                    result[i, 0] = source[i];
                    result[i, 1] = string.Empty;
                }
                else
                {
                    result[i, 0] = splitter[0];
                    result[i, 1] = string.Join(separator.ToString(), Enumerable.Range(1, splitter.Length - 1).Select(x => splitter[x]));
                }
            }
            
            return result;
        }
    }
}
1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
06.08.2013, 21:00
О ужас...
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
 
namespace ConsoleApplication98
{
    class MyClass
    {
        public string Key { get; set; }
        public string Value { get; set; }
 
        private static readonly Regex RegEx = new Regex(@"(?<=:)(.+?)\s*<\s*[^:]+\b");
 
        public static IEnumerable<MyClass> Parse(string input)
        {
            return from Match match in RegEx.Matches(input) 
                   select new MyClass {Key = match.Groups[1].Value, Value = match.Groups[2].Value};
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            const string s = ":Строка 1 < 4961feea0f51653e4a54b8db39dffe0c:Строка 2 < 9e1155e8ad56b661861297a5409ff37f:Строка 3 < 3a0efc05c330175e580925ad950f9d21:Строка 4 < c25a68f1136b433df0318613e4b19000:Строка 5 < 5ebe921ea2d5a24803a9782dfffec9ea:Строка 6 < f83537a37492d7fc2789ddb2c6131b0f";
 
            MyClass[] myClasses = MyClass.Parse(s).ToArray();
            Array.ForEach(myClasses, x => Console.WriteLine("Key = {0}, value = {1}", x.Key, x.Value));
 
        }
    }
}
1
0 / 0 / 0
Регистрация: 05.05.2012
Сообщений: 34
06.08.2013, 21:35  [ТС]
Спасибо огромное! Все супер работает)

Очень признателен)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.08.2013, 21:35
Помогаю со студенческими работами здесь

Запись текста из txt в двумерный массив
Привет всем, нужно записать txt вида ./files//minecraft/assets/icons/icon_16x16.png;1eea6fda0ca03698efba7b045b5375f9 ...

Чтение матрицы и запись ее в двумерный массив
нужно считать матрицу из файла.txt и записать ее в двумерный массив, ее размер заранее не известен значения матрицы пишутся через пробел,...

Split строки в двухмерный массив
Есть некая строка string str= &quot;Hello|world\n Im|alive&quot; (неопределённая) Как можно её спарсить, чтоб массив string выглядел...

Записать строки файла в массив, используя Split
я пытаюсь сделать следующее...есть массив строк 1. text=&quot;/Сколько будет дважды два??/&quot; 2. text=&quot;/Сколько будет трижды...

Запись из DataGridView в двумерный массив
Как записать данные из DataGridView в двумерный массив, я делаю так object myArray = new object; for (int i = 0; i &lt;...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru