crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Проблема с заменой символов
GooDZon
  опции профиля:
сообщение 19.11.2019, 15:18
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 1
Регистрация: 19.11.2019
Пользователь №: 5174

Спасибо сказали: 0 раз(а)




Репутация:   0  


Необходимо сделать так, чтобы при вводе символа "а", символ заменялся на "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.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 20.11.2019, 7:54
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


GooDZon, если есть возможность пробежаться посимвольно по каждому тексту, то бежишь и заменяешь "инверсно" a на b , b на a

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

вроде должно сработать )

Сообщение отредактировал Алексей1153 - 20.11.2019, 7:55
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.11.2024, 0:50