Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 10.01.2015
Сообщений: 37
1

Построчная проверка на вхождение

29.11.2015, 00:15. Показов 1450. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте уважаемые форумчане! Получаю посредством CMD список ранее подключаемых сетей и передаю его в текстбокс .Текстбокс содержит:
Профили интерфейса Беспроводная сеть:

Профили групповой политики (только чтение)
------------------------------------------
<Отсутствует>

Профили пользователей
---------------------------
Все профили пользователей : Littledev
Все профили пользователей : oloollo
Все профили пользователей : netshellnew
Все профили пользователей : gpon1882

Для продолжения нажмите любую клавишу . . .
Нужно построчно проверить наличие профилей (gpon1882 и тд.) и выводить в текстбокс только их. Все остальное должно отбрасываться(включая возможные профили групп. политики).
Пробовал делать так:
C#
1
2
3
4
5
 textBox.Text = cmmds.getNets(); //выводим из цмд в текстбокс
            textBox.Text  += ";";
 
            var sss = textBox.Text.Substring(textBox.Text.IndexOf(":"), textBox.Text.LastIndexOf("В")-1);
                        textBox2.Text = sss;
Но, не работает. Выводит
:

Профили групповой политики (только чтение)
------------------------------------------
<Отсутствует>

Профили пользователей
---------------------------
Все профили пользо
Подскажите как это правильно реализовать. P.S. Профилей сетей может быть произвольное количество.
Заранее благодарен!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2015, 00:15
Ответы с готовыми решениями:

Проверка на вхождение строки в массив строк работает некорректно
У меня есть строка и массив строк, к примеру string mes = Console.WriteLine(); string digits =...

Проверка строки на вхождение любых символов, за исключением разрешенных
Корректная строка должна содержать только цифры(0-9), пробелы( ), запятые(,) и тире(-). Каким...

sql построчная проверка
Ребят помогите пожалуйста уже не знаю что делать! Есть у меня табличка mssql!я ввожу допустим в...

Построчная проверка и журнал учета операций
Помогите пожалуйста, не могу разобраться с двумя нюансами. Пример во вложении. 1) Построчная...

3
44 / 44 / 28
Регистрация: 06.07.2011
Сообщений: 353
29.11.2015, 00:48 2
Лучший ответ Сообщение было отмечено little dev как решение

Решение

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
void Main()
{
    var input = @"Профили интерфейса Беспроводная сеть:
    
    Профили групповой политики (только чтение)
    ------------------------------------------
    <Отсутствует>
    
    Профили пользователей
    ---------------------------
    Все профили пользователей : Littledev
    Все профили пользователей : oloollo
    Все профили пользователей : netshellnew
    Все профили пользователей : gpon1882
    
    Для продолжения нажмите любую клавишу . . .";
 
    var lines = input.Split('\n');
    var profiles = new List<string>();
    foreach(var line in lines)
    {
        if(!line.Contains("Все профили пользователей : ")) continue;
        var profile = line.Split(new string[] {": "}, StringSplitOptions.None)[1];
        profiles.Add(profile);
    }
}
В листе находятся все профили.
1
0 / 0 / 0
Регистрация: 10.01.2015
Сообщений: 37
29.11.2015, 10:48  [ТС] 3
Спасибо за ответ, но к сожалению что-то не работает. следующий код:
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
var input = @"Профили интерфейса Беспроводная сеть:
    
    Профили групповой политики (только чтение)
    ------------------------------------------
    <Отсутствует>
    
    Профили пользователей
    ---------------------------
    Все профили пользователей : Littledev
    Все профили пользователей : oloollo
    Все профили пользователей : netshellnew
    Все профили пользователей : gpon1882
    
    Для продолжения нажмите любую клавишу . . ."; 
            //cmmds.getNets(); //выводим из цмд в текстбокс
 
            var lines = input.Split('\n');
            var profiles = new List<string>();
            foreach (var line in lines)
            {
                if (!line.Contains("Все профили пользователей : ")) continue;
                var profile = line.Split(new string[] { ": " }, StringSplitOptions.None)[1];
                profiles.Add(profile);
                
               
            }
 foreach (var element in profiles)
                {
                    textBox.Text = element;
                }
        }
выводит только "gpon1882", а остальные элементы списка не выводит.
Если писать
C#
1
textBox.Text = profiles[1]
то выводит ошибку "индекс за пределами массива", хотя должен выводить сеть. Для profiles[0] выводит "littledev". Подскажите, в чем моя ошибка?
0
44 / 44 / 28
Регистрация: 06.07.2011
Сообщений: 353
29.11.2015, 19:25 4
Значит у вас в коллекции всего 1 профиль. ([0])
А вы хотите получить больше, чем есть. Поставьте точку останова и посмотрите, что хранится в profiles.
1
29.11.2015, 19:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2015, 19:25
Помогаю со студенческими работами здесь

Проверка символа на вхождение
решил я такой проверить if not(stroka in ) then flag:=False; при этом stroka='М' по...

Проверка на вхождение в множество
Вот пытаюсь скормить код SQL server'у: SELECT empno, enam,e job, sal, deptno FROM emp WHERE...

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

Проверка на вхождение точки в прямоугольник
Есть координатная плоскость. Заданы 10 координат: x, y -- координаты точки; x1,x2,x3,x4,y1,y2,y3,y4...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru