2012-03-12 40 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

你可以使用的QTextStreamreadAll功能,以獲取包含字符串中的所有文本,然後使用QStringreplace功能,以消除新線:

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

如果你有一個大文件最好使用readLine函數。