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

Парсинг массива в массив

25.05.2022, 01:39. Показов 989. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, что я делаю не так, знаю что запись в массив выглядит так (verify[] = mass[i]), но тогда VS начинает ругаться и не даёт ничего сделать. Как записать сплитоанные значение mass[i] в verify[i].
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
            string name = textBox1.Text+";";
            string password = textBox2.Text;
            string[] verify = {};
            bool login = false;
 
 using (StreamReader reader = new StreamReader("file.txt"))
                {
                    string[] mass = reader.ReadToEnd().Split('\n');
                    for (int i = 0; i < mass.Length; i++)
                    {
                        verify = mass[i].Split(';'); 
                        if (name == verify[0])
                        {
                            if(password == verify[1])
                            {
                                login = true;
                                break;
                            }
                        }
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.05.2022, 01:39
Ответы с готовыми решениями:

Парсинг картинок в массив
Господа, помогите! Много рыл, но так и не нашел нормального ответа, т.к. только начинаю работать с сетью на плюсах.Есть сайт онлайн...

Выстроить элементы массива A по убыванию, определить и поместить в массив В – нечетные числа массива А, в массив С – четные числа массива А
Дан массив А (5; 7; 22; 1; 8; 16; 3). Выстроить элементы массива A по убыванию, определить и поместить в массив В – нечетные числа массива...

Парсинг массива
Пытаюсь обработать данные от php скрипта, который отдаёт записи БД. На выходе выглядит так: ...

10
2394 / 1923 / 763
Регистрация: 27.07.2012
Сообщений: 5,567
25.05.2022, 09:17
Цитата Сообщение от Andrew210 Посмотреть сообщение
но тогда VS начинает ругаться и не даёт ничего сделать
На что ругаться?

Ваш код рабочий, только не надо объявлять массив verify заранее. Избавляйтесь от этой Pascal-привычки:
C#
1
string[] verify = mass[i].Split(';');
0
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 6
25.05.2022, 13:39  [ТС]
Приведу полный листинг:
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
 private void button1_Click(object sender, EventArgs e)
        {
            string name = textBox1.Text+";";
            string password = textBox2.Text;
            string n1 = "";
            string p1 = "";
            bool login = false;
 
            if (name.Length == 0)
            {
                MessageBox.Show("Введите логин");
            }
            else if (password.Length == 0)
            {
                MessageBox.Show("Введите пароль");
            }
            else
            {
                using (StreamReader reader = new StreamReader("file.txt"))
                {
                    string[] mass = reader.ReadToEnd().Split('\n');
                    for (int i = 0; i < mass.Length; i++)
                    {
                        string [] verify = mass[i].Split(';'); 
                         if ((name == verify[0]) && (password == verify[1]))
                        {
                                login = true;
                                n1 = verify[0];
                                p1 = verify[1];
                                break;
                        }
                        else
                        {
                            {
                                MessageBox.Show(verify[i]);
                                login = false;
                            }
                        }
                    }
                    if (login == true)
                    {
                        MessageBox.Show("Здравствуйте " + name);
                    }
                    else 
                    {
                        if (n1 != name)
                        {
                            label4.Text = n1;
                            MessageBox.Show("Введённый логин не верен");
                        }
                        else if (p1!=password)
                        {
                            MessageBox.Show("Введённый пароль не верен");
                        }
                        int label = Convert.ToInt32(label3.Text);
                        label = label + 1;
                        label3.Text = Convert.ToString(label);
                        if (Convert.ToInt32(label3.Text) == 3)
                        {
                            MessageBox.Show("Попытки закончились");
                            Application.Exit();
                        }
                    }
                }
            }
        }
Это обычная авторизация, по крайней мере пытаюсь её реализовать, в файле, который я подключаю находятся логин и пароль в таком виде: "логин;пароль". Массив считывает построчно, но в переменную "verify" заносится только логин а не вся строка поэлементно и я не могу понять, почему так происходит ?
0
2394 / 1923 / 763
Регистрация: 27.07.2012
Сообщений: 5,567
25.05.2022, 13:47
C#
1
2
3
4
5
6
7
8
9
                    for (int i = 0; i < mass.Length; i++)
                    {
                        string [] verify = mass[i].Split(';'); 
                        // ...
                            {
                                MessageBox.Show(verify[i]); // <-- выход за пределы массива
                                // ...
                            }
                    }
Вы эту ошибку ловите?
0
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 6
25.05.2022, 14:01  [ТС]
Это я просто вывел, чтобы посмотреть, что вообще записывается в переменную, так от записывается только одно значение строки, а их должно быть два, приведу пример:
логин;пароль
л;п
т;с
ф;в

В строке 2 значения, если сплитить их, но записывается только одно, следовательно сравнить их с введёнными не представляется возможным
0
2394 / 1923 / 763
Регистрация: 27.07.2012
Сообщений: 5,567
25.05.2022, 14:05
Цитата Сообщение от Andrew210 Посмотреть сообщение
В строке 2 значения, если сплитить их, но записывается только одно
А это вы где смотрите?
0
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 6
25.05.2022, 14:11  [ТС]
Название: Снимок.PNG
Просмотров: 20

Размер: 4.7 Кб
вот сам файл
вот работа с ним:
C#
1
2
3
4
5
6
 using (StreamReader reader = new StreamReader("file.txt"))
                {
                    string[] mass = reader.ReadToEnd().Split('\n');
                    for (int i = 0; i < mass.Length; i++)
                    {
                        string [] verify = mass[i].Split(';');
я для этого и выводил "verify" в MessageBox чтобы посмотреть, что в этом массиве
0
2394 / 1923 / 763
Регистрация: 27.07.2012
Сообщений: 5,567
25.05.2022, 14:27
Цитата Сообщение от Andrew210 Посмотреть сообщение
я для этого и выводил "verify" в MessageBox чтобы посмотреть, что в этом массиве
Ну вы выводили только один элемент из массива verify:
Цитата Сообщение от Andrew210 Посмотреть сообщение
C#
1
MessageBox.Show(verify[i]);
Если вы на это ориентировались, то это неправильно.
0
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 6
25.05.2022, 15:00  [ТС]
Если смотреть по логике программы то строку "a;a" сплит должен разбить на 2 элемента, что будет verify[0] = a && verify[1] = a, но этого нет, я не могу разобраться с этим
0
2394 / 1923 / 763
Регистрация: 27.07.2012
Сообщений: 5,567
25.05.2022, 15:25
Лучший ответ Сообщение было отмечено Andrew210 как решение

Решение

Цитата Сообщение от Andrew210 Посмотреть сообщение
но этого нет
А что есть? У меня подозрения, что вы куда-то не туда смотрите просто. После string[] verify = mass[i].Split(';'); выведите оба элемента verify: MessageBox.Show($"Name = {verify[0]}, Pass = {verify[1]}"); или как-то ещё. Но только не после вашей проверки (name == verify[0]) && (password == verify[1]), так как она у вас не пройдёт - вы в name зачем-то добавляете ; - (string name = textBox1.Text+";";).
1
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 6
25.05.2022, 16:44  [ТС]
Спасибо, я совсем и забыл, что такой костыль делал, убрал его и всё прошло замечательно.
Тема закрыта.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.05.2022, 16:44
Помогаю со студенческими работами здесь

Парсинг Массива
Доброе день ув. Программисты. Есть папка &quot;Base&quot; в ней текстовые файлы вида &quot;123456789&quot; без расширения. Считываю всю папку и...

Парсинг массива
Добрый день, у меня такая проблема: есть скрипт: $Computername = $env:COMPUTERNAME $adsi = &quot;WinNT://$Computername&quot; ...

Парсинг массива
Ку-ку, вопрос следующий, как провести правильный парсинг массива вот такого типа, чет не чего не помогает Array ( =&gt; Array ...

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

Парсинг всех ссылок в массив
Помогите примерчик сообразить, желательно с выводом n одного из элементов массива все ссылки в формате: &lt;a href=&quot;ССЫЛКА&quot;...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Программный отбор элементов справочника Номенклатура по группе 1С
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор под наименованию группы (на. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор элементов справочника Сотрудники по перечислениям 1С
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru