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

Обработка string, достать из текста необходимую информацию

05.03.2019, 22:20. Показов 1804. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер! Имеется string _line в которую выплевывается консольной программой ответ. Ответ выглядит вот так:
Code
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
ffmpeg version N-93264-g85051febc6 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 8.2.1 (GCC) 20190212
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
  libavutil      56. 26.100 / 56. 26.100
  libavcodec     58. 47.102 / 58. 47.102
  libavformat    58. 26.101 / 58. 26.101
  libavdevice    58.  6.101 / 58.  6.101
  libavfilter     7. 48.100 /  7. 48.100
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
[dshow @ 05f93ac0] DirectShow video devices (some may be both video and audio devices)
[dshow @ 05f93ac0] Could not enumerate video devices (or none found).
[dshow @ 05f93ac0] DirectShow audio devices
[dshow @ 05f93ac0]  "Линия (Steinberg UR22mkII )"
[dshow @ 05f93ac0]     Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{6D89E0D2-A921-47C0-8832-0EAD6C28F19B}"
[dshow @ 05f93ac0]  "Line 3 (Breakaway Pipeline)"
[dshow @ 05f93ac0]     Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{789F1419-9208-477C-B66A-8C0F957A6A4D}"
[dshow @ 05f93ac0]  "Line 4 - 176400 RTLSDR (Breakaway Pipeline)"
[dshow @ 05f93ac0]     Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{929B9D51-E8A9-4D76-9D6C-A91F05214DED}"
[dshow @ 05f93ac0]  "Line 2 (Breakaway Pipeline)"
[dshow @ 05f93ac0]     Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{C948DE9D-9AE7-40DF-AAFB-B7F35D28EB5E}"
[dshow @ 05f93ac0]  "Line 1 (Breakaway Pipeline)"
[dshow @ 05f93ac0]     Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{F9B15B5E-D2D8-4506-B294-651F44E6805C}"
dummy: Immediate exit requested
Информация может меняться от компьютера к компьютеру. На то что далее будут перечислены аудиоустройства указывает фраза "DirectShow audio devices", что логично. Фраза "[dshow @ 05f93ac0]" от компа к компу может меняться. К ней привязаться нельзя Оно и понятно - это список устройств, везде он разный. Нужно из этого текста вынуть только названия аудиоустройств. Т.е. получить на выходе вот это и засунуть это в комбобокс

Линия (Steinberg UR22mkII )
Line 3 (Breakaway Pipeline)
Line 4 - 176400 RTLSDR (Breakaway Pipeline)
Line 2 (Breakaway Pipeline)
Line 1 (Breakaway Pipeline)


Может быть кто подскажет изящный вариант? Второй день подчитываю про операторы для форматирования текста. Получаются одни костыли. Если изящного варианта нет - подскажите куда копать? Буду курить дальше. Спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.03.2019, 22:20
Ответы с готовыми решениями:

Вытащить необходимую информацию
Друзья, столкнулся с небольшой сложностью, думал справлюсь стандартными инструментами "Данные"-"Текст по столбцам",...

Вывести из файла необходимую информацию для пользователя заданного в строковой переменной
задача такая: в файле лежит список с именами пользователей и информацией предназначенных для них. необходимо вывести необходимую...

Как достать информацию в БД
Подскажите, пожалуйста, как достать инф с БД. Например таблица называется 'username' В таблице 2 поля - id, name. id name 1 -...

7
130 / 70 / 25
Регистрация: 20.03.2014
Сообщений: 261
05.03.2019, 22:41
Вот набросал регулярку для преведенного вами примера.

\[dshow @ [0-9a-f]+\] "(?<find>[a-zA-Z 0-9\(\)-]*)"

Тут можете потестить http://regexstorm.net/tester
0
0 / 0 / 0
Регистрация: 18.11.2017
Сообщений: 4
05.03.2019, 22:47  [ТС]
спасибо за ответ! но не совсем понял что означает регулярка и каким образом это тестировать - что куда вставлять. Если вас не затруднит - поясните что как и где почитать про используемые вами методы форматирования. Впервые вижу в таком виде код в с# в вижуал студио новичок - понемногу изучаю. в такой форме кода пока не встречал
0
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
05.03.2019, 22:58
Тоже по поводу регулярных выражений, другой вариант.

C#
1
2
3
4
5
6
7
using System.Text.RegularExpressions;
 
string text = File.ReadAllText(@"text.txt"); // здесь ваш текст
foreach (Match item in Regex.Matches(text, "\"([(Линия)|(Line)].+)\""))
{
    Console.WriteLine(item.Groups[1].Value);
}
1
130 / 70 / 25
Регистрация: 20.03.2014
Сообщений: 261
05.03.2019, 23:00
Лучший ответ Сообщение было отмечено multimaxfm как решение

Решение

Это не форматирование, а паттерн матчинг. Регулярка это шаблон описывающий ваши данные. Я взял то что общее указал явно это '[dshow @ ]' и двойные ограждающие кавычки.
Все данные которые меняются описаны шаблонами:
[0-9a-f]+ - знаки 0-9 и a-f, один или более, так определяется любое другое значение которое там может быть
(?<find>[a-zA-Z 0-9\(\)-]*) - сама искомая строка состоящая из букв a-zA-Z, цифр 0-9 и знаков пробел, -, скобки
1
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
05.03.2019, 23:01
Цитата Сообщение от multimaxfm Посмотреть сообщение
Может быть кто подскажет изящный вариант?
Ну, не знаю, получится ли вариант изящнее ли чем у Вас... Я бы сделал так
C#
1
2
3
4
string s; // Это Ваш текст
//Искомая строка должна начинаться с кавычки, за которой обязательно должна идти буква 
Regex regex = new Regex("(\"[а-яА-яa-zA-Z]).*");
MatchCollection matches = regex.Matches(s);
1
0 / 0 / 0
Регистрация: 18.11.2017
Сообщений: 4
05.03.2019, 23:05  [ТС]
регулярные выражения, задачу понял, открыл книгу - поехал читать ))) истина где-то рядом

Добавлено через 2 минуты
спасибо большое! кажется это то что нужно! погрузился в чтение и изучение регулярных выражений с# , буду пробовать и тестить с сайтом для теста тоже разобрался, удобно!
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
05.03.2019, 23:33
Ну и я внесу свою лепту
Без групп. positive lookahead и positive lookbehind
(?<=")[а-яА-яa-zA-Z].*(?=")
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.03.2019, 23:33
Помогаю со студенческими работами здесь

Достать информацию с конфига
Итак, у меня есть программка с конфигом, подгружающая в определенный момент динамическую библиотеку, которая в свою очередь тоже имеет...

Где достать нужную информацию?
Всем привет! Мне нужно сделать курсовую работу на тему &quot;База данных флоры и фауны&quot; моей области! Кончено же с помощью MySQL. ...

как достать информацию из XML ?
получаю xml с сайта www.rp5.ru вот пример xml http://rp5.ru/docs/xml/ru?id=2374 и как мне дальше вынуть все эти значения мне нужно тупо...

Нужно достать информацию с HDD
Ситуация такая: попался в руки НГЖМД. Как получилось, что начало диска (системный раздел) цел и невредим, второй: создано два чистых...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru