Название: [РЕШЕНО]Спецсимволы в строках. Отправлено: Bepec от Август 21, 2017, 22:49 Приветствую заглянувших.
Собственно наверно самый простой вопрос в моей карьере. Есть ли у QString функция, которая преобразует \n \t \r в спецсимволы? Т.е. пользователь вводит строчку "\tHello\n\tworld!" и получаем Код: \tHello\n\tworld! И надо её обработать, чтобы получилось: Код: Hello Вариант с реплейсом работает, но кошерно ли это? Вывод: replace кошерен. Название: Re: Спецсимволы в строках. Отправлено: qate от Август 21, 2017, 23:51 время ввода пользователя во много раз дольше обработки, т.о. замена вполне подойдет
а зачем он так странно вводит, может ему qtextedit дать для ввода ? Название: Re: Спецсимволы в строках. Отправлено: Bepec от Август 22, 2017, 01:20 Ну это в textEdit и вводит :)
Утилита для написания скриптов для обработки данных. По сути представляет собой упрощенный интерфейс regexp, однако действия разбиты на простейшие и нет необходимости в знании синтаксиса, заодно добавляет несколько отсутствующих у regexp возможностей. Потому работа с спецсимволами достаточно важна. Просто уникальные личности вроде igors поселили ростки неуверенности в моей душе :D Дескать обычная замена это страшно плохо :) Название: Re: Спецсимволы в строках. Отправлено: lit-uriy от Август 24, 2017, 06:15 Верес, пробуй replace(), который не использует QRegExp. Должно работать очень быстро
Название: Re: Спецсимволы в строках. Отправлено: Bepec от Август 24, 2017, 12:16 Епте, вы издеваетесь или пробуете демонстрировать остроумие?
Тогда почитайте последнюю строку первого сообщения :( PS не ожидал. Название: Re: Спецсимволы в строках. Отправлено: ssoft от Август 24, 2017, 12:54 Могу предложить что-то типа такого
Код
Код не проверял - это только идея). Возня с utf8 для символов отличных от латиницы. Название: Re: Спецсимволы в строках. Отправлено: Bepec от Август 24, 2017, 14:13 Эм... ssoft - в QString utf16 хранится овродя. Так что если ты туда запихнёшь необработанную строку, там вместо "привет мир!" получится "?????? ???!". И ничего из ? достать ты не сможешь.
Потому преобразование надо проводить до присвоения QString'у :) Название: Re: Спецсимволы в строках. Отправлено: titan83 от Сентябрь 05, 2017, 18:15 Может тут посмотреть?
http://doc.qt.io/qt-5/qstring.html#simplified Правда на тему обработки таба есть сомнения) Название: Re: Спецсимволы в строках. Отправлено: Alex Custov от Сентябрь 05, 2017, 19:57 Может тут посмотреть? http://doc.qt.io/qt-5/qstring.html#simplified Правда на тему обработки таба есть сомнения) ты сам-то читал? :D Вересу не нужно удалять спецсимволы, ему нужно заменить текстовое представление на спецсимволы. P.S. по теме - кошерно, если не париться. Если париться, то нужно пройтись сквозь строку и при каждом \ заменять на соответствующий escape. Будет быстрее. Название: Re: Спецсимволы в строках. Отправлено: Bepec от Сентябрь 05, 2017, 22:03 Ну, replace в принципе то же самое делает. Тем более QString по индексу не пройдешь, там QCharRef'ы полезут, и всё сведётся к тому же replace, на мой взгляд, только самопальному :D
Темку закрываю, Вывод - replace кошерен. |