Преобразуйте многострочную QString в однострочную QString
Вопрос
У меня есть что-то вроде этого:
void ReadFileAndConvert ()
{
QFile File (Directory + "/here/we/go");
if(File.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream Stream (&File);
QString Text;
do
{
Text = Stream.readLine();
Text = Text.simplified();
// Here I want to convert the multiline QString Text into a oneline QString
// ...
}
Текст QString состоит из многострочного текста, который мне нужно преобразовать в онлайн-текст/QString.Как я могу этого добиться?приветствие
Решение
Поместите свой текст в QStringList
, и использовать QStringList::join()
, например .
QStringList doc;
[...]
Text = Stream.readLine();
Text = Text.simplified();
doc << Text;
[...]
QString final = doc.join(" ");
Другие советы
Вы могли бы использовать readAll
функция QTextStream
для того, чтобы получить строку, содержащую весь ваш текст, а затем использовать replace
функция QString
для того, чтобы удалить новые строки:
QString oneLineText = Stream.readAll().replace("\n"," ").simplified();
Если у вас большой файл, лучше использовать readLine
функция.
Не связан с StackOverflow