Bin ein Neuling in Sachen C++ und QT und bin auf folgendes Problem gestoßen.
Ich möchte Daten zeilenweise aus einer Datei auslesen und mittels replace Teilstrings ersetzen. Dies funktioniert auch jedoch ist es mir noch nicht gelungen erst ab einer bestimmten Position im QString zu suchen/ersetzen.
In 'C' würde ich das mit einem Zeiger machen der auf das Erste gefundene Wort zeigt... aber hab dies nicht so richtig umsetzen können.
Mein Ansatz:
Code: Alles auswählen
int verarbeitung::einlesen(ifstream *in, ofstream *out){
string buff;
QString zeile;
QStringList swort_list;
int komm_begin, komm_end, komm_zeilig;
/*RegExp Liste*/
swort_list << "(^switch\\b|\\bswitch\\b)";
/*Zeile Auslesen*/
getline(*in, buff);
/*Umwandeln in QString*/
zeile = QString::fromStdString(buff);
QRegExp rx_begin("(/\\*)");
QRegExp rx_end("(\\*/)");
QRegExp rx_zeilig("(//)");
komm_begin = rx_begin.indexIn(zeile);
komm_end = rx_end.indexIn(zeile);
komm_zeilig = rx_zeilig.indexIn(zeile);
for(int i = 0; swort_list.size() != i; i++){
/*RegExp Initialsierung*/
QRegExp rx_swort(swort_list[i]);
/*Schlüsselwort Speichern*/
rx_swort.indexIn(zeile);
QString swort = rx_swort.cap(1);
/*Suchen und ersetzen*/
zeile.replace(rx_swort,"<h2>"+swort+"</h2>");
}
*out << zeile.toStdString();
return 0;
}
Code: Alles auswählen
zeile.replace(rx_swort,"<h2>"+swort+"</h2>");