Converti un QString multilinea in una linea QString di una riga
Domanda
Ho qualcosa di simile:
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
// ...
}
.
Il testo QString è costituito da un testo multilineo che devo convertire in un testo online / QString.Come posso raggiungere questo obiettivo?Saluti
Soluzione
Metti il testo in un QStringList
e usa QStringList::join()
, E.G.
QStringList doc;
[...]
Text = Stream.readLine();
Text = Text.simplified();
doc << Text;
[...]
QString final = doc.join(" ");
. Altri suggerimenti
È possibile utilizzare readAll
Funzione di QTextStream
in ordinePer ottenere una stringa contenente tutto il testo e quindi utilizzare replace
Funzione di QString
per rimuovere nuove linee:
QString oneLineText = Stream.readAll().replace("\n"," ").simplified();
.
Se hai un file di grandi dimensioni è meglio utilizzare la funzione readLine
.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow