Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с заменой символов
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
GooDZon
Необходимо сделать так, чтобы при вводе символа "а", символ заменялся на "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
GooDZon, если есть возможность пробежаться посимвольно по каждому тексту, то бежишь и заменяешь "инверсно" a на b , b на a

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

вроде должно сработать )
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2021 IPS, Inc.