2014-09-25 6 views
0

Я пытаюсь заменить текст определенной строки, но не добился успеха. (Я бы искал много, но я не нашел ничего)Заменить текст с определенной строки

что-то вроде:

hello 
my 
friend! 

заменяющей строки 2 в какой-то текст:

hello 
AEEEHO NEW LINE TEXT 
friend! 

Я создал QStringList и попытался читать текст за строкой и добавлять в этот список, меняя только строку, но безуспешно.

 int line = 1; // to change the second line 
     QString newline = "my new text"; 
     QStringList temp; 

     int i = 0; 
     foreach(QString curlineSTR, internalCode.split('\n')) 
     { 
      if(line == i) 
       temp << newline; 
      else 
       temp << curlineSTR; 
      i++; 
     } 

     internalCode = ""; 
     foreach(QString txt, temp) 
      internalCode.append(QString("%1\n").arg(txt)); 

ответ

2

Я верю, что вы ищете QRegExp, чтобы иметь дело с новой строки и сделать что-то вроде этого:

QString internalcode = "hello\nmy\nfriend!"; 

int line = 1; // to change the second line 
QString newline = "another text"; 

// Split by newline command 
QStringList temp = internalcode.split(QRegExp("\n|\r\n|\r")); 
internalcode.clear(); 

for (int i = 0; i < temp.size(); i++) 
{ 
    if (line == i) 
     internalcode.append(QString("%0\n").arg(newline)); 
    else 
     internalcode.append(QString("%0\n").arg(temp.at(i))); 
} 

//Use this to remove the last newline command 
internalcode = internalcode.trimmed(); 

qDebug() << internalcode; 

И выход:

"hello 
another text 
friend!" 
+0

Спасибо! Работает отлично. – Niunzin