2012-03-12 5 views
1

У меня есть что-то вроде этого:Преобразование многострочный 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. Как я могу это достичь? приветствия

ответ

7

Поместите текст в QStringList и используйте QStringList::join(), например.

QStringList doc; 
[...] 
Text = Stream.readLine(); 
Text = Text.simplified(); 
doc << Text; 
[...] 
QString final = doc.join(" "); 
2

Вы можете использовать readAll функции QTextStream для того, чтобы получить строку, содержащую весь текст, а затем использовать replace функции QString для того, чтобы удалить новые линии:

QString oneLineText = Stream.readAll().replace("\n"," ").simplified(); 

Если у вас есть в большом файле лучше использовать функцию readLine.

Смежные вопросы