Convertir un QString multilínea en un QString de una línea
Pregunta
Tengo algo como esto:
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
// ...
}
El texto QString consta de un texto de varias líneas que necesito convertir en un texto/QString en línea.¿Cómo puedo conseguir esto?saludos
Solución
Pon tu texto en un QStringList
, y use QStringList::join()
, p.ej.
QStringList doc;
[...]
Text = Stream.readLine();
Text = Text.simplified();
doc << Text;
[...]
QString final = doc.join(" ");
Otros consejos
Podrías usar el readAll
funcion de QTextStream
para obtener una cadena que contenga todo el texto y luego usar el replace
funcion de QString
para eliminar nuevas líneas:
QString oneLineText = Stream.readAll().replace("\n"," ").simplified();
Si tiene un archivo grande es mejor utilizar el readLine
función.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow