Convertir un QString multiligne en un QString d'une seule ligne
Question
J'ai quelque chose comme ça :
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
// ...
}
Le texte QString se compose d'un texte multiligne que je dois convertir en un texte/QString en ligne.Comment puis-je atteindre cet objectif?salutations
La solution
Mettez votre texte dans un QStringList
, et utilise QStringList::join()
, par exemple.
QStringList doc;
[...]
Text = Stream.readLine();
Text = Text.simplified();
doc << Text;
[...]
QString final = doc.join(" ");
Autres conseils
Vous pourriez utiliser le readAll
fonction de QTextStream
afin d'obtenir une chaîne contenant tout votre texte puis d'utiliser le replace
fonction de QString
afin de supprimer de nouvelles lignes:
QString oneLineText = Stream.readAll().replace("\n"," ").simplified();
Si vous avez un gros fichier, il est préférable d'utiliser le readLine
fonction.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow