|
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 61
|
|||||||||||
.NET 10 Удаление команд из текста10.12.2025, 08:16. Показов 2352. Ответов 31
Метки нет (Все метки)
Здравствуйте.
Хочу узнать как можно удалять из текста команды которые выглядят вот так:
Но я не понимаю структуру команд регулярных выражений. Мне нужен пример. Не думаю что нужно там под каждую команду своё регулярное выражение. Мне кажется должно быть возможным прописать вариант (по крайней мере для таких команд). Суть команды в том что она начинается на \ дальше кодовый символ команды. Скобки (могут быть любыми). В скобках сама команда. И ещё такая суть что есть команда \\ которая попросту заменяется на символ \. Так что это тоже нужно учесть. Но это в целом легко учесть если сначала заменить \\ на \.
0
|
|||||||||||
| 10.12.2025, 08:16 | |
|
Ответы с готовыми решениями:
31
Запись текста в Label и удаление текста из него по Backspace
|
|
|
|||||||
| 17.12.2025, 23:41 | |||||||
|
Borisov_Alex, на вскидку если:
0
|
|||||||
|
14350 / 9453 / 1360
Регистрация: 21.01.2016
Сообщений: 35,636
|
|
| 18.12.2025, 04:58 | |
|
Borisov_Alex, это всё не то. Это ты мне своё видение решения какой-то проблемы описываешь. А я спрашиваю что за проблема такая исходно. Что за команды, почему они в любом тексте встречаются, и почему надо ограничивать длину текста?
Я это спрашиваю потому, что нормальное решение может оказаться совершенно не таким, как ты ожидаешь.
0
|
|
|
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 61
|
||
| 18.12.2025, 11:41 [ТС] | ||
|
Изначально подумал что удалить команды и далее сделать перенос. Но не подумал а как потом вернуть обратно ибо после переноса позиция команд в тексте полностью собьется.
0
|
||
|
14350 / 9453 / 1360
Регистрация: 21.01.2016
Сообщений: 35,636
|
|
| 18.12.2025, 15:43 | |
|
Borisov_Alex, теперь всё встало на свои места.
Регулярные выражения тут можно было бы использовать. Но ты про производительность и эффективность тоже упомянул (похвально). А это значит, что придётся писать лексический анализатор, который будет разбивать входящую строку на лексемы ("текст", "команда", "параметр команды") и отдавать их (через IEnumerable<T>) рендереру, который и будет вычислять длину текущей строки и выполнять разбиение. Будет максимально эффективно. Только тут явно понадобится список допустимых команд. Изначально выглядело, что достаточно "\С" или "\N", но видно что команд сильно больше.
1
|
|
|
6813 / 2313 / 351
Регистрация: 10.12.2013
Сообщений: 7,981
|
||
| 18.12.2025, 18:12 | ||
|
Ему нужен нормальный(читай настоящий) текстовый редактор, чтобы было удобно редактировать очень большой текстовый файл, служащий ресурсом для какой-то игрульки. Намекаю на nvim. Кака бычно. Например, упомянутый 'Конверт регистров' и 'обрамление кавычками' производятся в vim неуловимыми движениями двух пальцев. Способ автоматизации данных движений тоже имеется. Всё давно придумано (40 лет тому назад) и то, что мОлодежь ничего не знает и изобретает велосипед - це обычное невежество, которое сложно оправдать, имея под руками интернет и всякий там ИИ.
0
|
||
|
14350 / 9453 / 1360
Регистрация: 21.01.2016
Сообщений: 35,636
|
|
| 18.12.2025, 18:15 | |
|
volodin661, ТС обозначил, что ему нужно текст разбивать на строки ограниченной длины, но учитывающий некие лексемы, которые разбивать не можно.
0
|
|
|
6813 / 2313 / 351
Регистрация: 10.12.2013
Сообщений: 7,981
|
|
| 18.12.2025, 18:54 | |
|
Ну так и я об этом; текст большой, всё слитно, глаза разбегаются, если просто холодно ограничить ширину, чтобы поудобней,
то linebreak может попасть на 'некую лексему', которую разбивать не надо. Со всеми задачами подобного рода отлично справляются настоящие текстовые редакторы. Добавлено через 2 минуты И уж совсем непонятно, зачем тут C#.NET
0
|
|
|
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 61
|
|
| 18.12.2025, 19:10 [ТС] | |
|
Вообще текст не будет сильно большой. В самом большом сценарии в одно сообщение влезает 4 строки по около 60 символов в каждом + команды.
Список команд естественно имеется. Всего около 50. Некоторые откровенно простые такие как \! \^ \G и т.д. Но некоторые с параметрами которые как правило указываются либо в таких: []; либо в таких: <> скобках. Так что на счёт длинных сообщений это я конеш загнул. Хотя могут быть и длинными но это явно в пределах разумного. Скажем так ни целая книга. Никто в здравом уме не станет писать многомиллионный текст для одного сообщения. В любом случае я понятия не имею как сделать перенос текста так чтобы это учитывало команды. Предположительно к числу допустимых символов в строке добавить длинну команд. Но хотя способ наверное нерабочий. Понятно что точный вариант тут никак не посчитаешь. Банально неизвестно на что команды будут меняться. Но хотябы преблезительно. Мне именно что нужно сделать перенос текста чтобы текст команд не учитывался. Обновить обычную функцию переноса текста которую выше писал.
0
|
|
|
|
||
| 18.12.2025, 20:56 | ||
|
Borisov_Alex,
1. Ты в чем и на чем это все делаешь? Это твое самописное приложение на C# будет, этот "редактор"? 2. Перенос строк, в частности по словам - умеют делать многие контролы сами из коробки. 3. Перенос строк для визуализации (просмотра в редакторе) вовсе не означает, что нужно реально менять исходный текст, вставляя перенос строк в него. Разве что со способностью ясно излагать суть вопроса у ТС проблема.
0
|
||
|
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 61
|
||||
| 20.12.2025, 11:29 [ТС] | ||||
|
Вот мне и нужна одна из функций редактора отредактировать текст под стандарт движка который сделает перенос текста при достижении длинны.
0
|
||||
|
|
|
| 20.12.2025, 17:41 | |
|
Borisov_Alex, хм.. Окей.
А что если: а) лимит символов упирается прямо в середину/часть команды? Переносится все, что идет сразу после команды? б) лимит уперся в середину/часть слова (не команды). Это слово обрезается и остаток его переносится на новую строку?
0
|
|
|
Модератор
3138 / 2286 / 469
Регистрация: 26.03.2015
Сообщений: 8,894
|
|||
| 25.12.2025, 15:02 | |||
|
Добавлено через 3 минуты
0
|
|||
| 25.12.2025, 15:02 | |
|
Интерпретатор команд, записанных в текстовом файле Не могу написать проект... (интерпретатор команд для управления объектом) Клиент-сервер: использование команд для управления рабочим процессом Shutdown в C# выполнение команд, через вин-форму, как в ком.строке) Имитация команд "копировать", "вставить", "удалить" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу.
До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения
Продолжаю серию постов о дискретно-событийной модели рабочего. . .
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|