crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Проблема с заменой символов
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Алексей1153 Дата 20.11.2019, 7:54
  GooDZon, если есть возможность пробежаться посимвольно по каждому тексту, то бежишь и заменяешь "инверсно" a на b , b на a

Ещё вариант, более ресурсоёмкий, сгенерировать последовательность символов X, не встречающуюся в документе (как - это нужно придумать. Подбором или осознанным анализом текста). Последовательность не должна содержать a и b. Далее заменяем все b на X , затем все a на b, затем X на a

вроде должно сработать )
GooDZon Дата 19.11.2019, 15:18
  Необходимо сделать так, чтобы при вводе символа "а", символ заменялся на "b", а "b" заменялся на "a". Если символ a на b в тексте уже менялся, то не заменять на a, во избежании повторов (у меня повтор получается и все символы обратно на a меняются).

При коде:
QString a = ui->textEdit->toHtml();
    a.replace("a","b");
ui->textBrowser->setHtml(a);


Меняется только a на b, но если дополнить код

QString a = ui->textEdit->toPlainText();
    a.replace("a","b").replace("b","a");
    ui->textBrowser->setPlainText(a);


То "a" сохраняется как "а", а "b" меняется на "a".
Как мне сделать чтобы а на b менялось и b на а.

В первом варианте использовал toHtml(); и setHtml(a); - это необходимо для сохранения форматирования текста (такие параметры как цвет, размер, формат шрифта) сохраняются при замене. Мне нужно именно с сохранением форматирования. При первом варианте кода форматирование сохраняется, а при втором ничего не происходит, поэтому я и заменил код на toPlainText(); но тогда a не меняется на b.

Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 5.7.2025, 7:57