تحويل كسترينغ متعدد الأسطر إلى كسترينغ سطر واحد

StackOverflow https://stackoverflow.com//questions/9666788

  •  12-12-2019
  •  | 
  •  

سؤال

لدي شيء من هذا القبيل:

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

// ...
}

يتكون النص كسترينغ من نص متعدد الأسطر التي أحتاج إلى تحويلها إلى نص على الانترنت/كسترينغ.كيف يمكنني تحقيق ذلك?تحياتي

هل كانت مفيدة؟

المحلول

ضع النص الخاص بك في ملف QStringList, ، واستخدام QStringList::join(), ، على سبيل المثال.

QStringList doc;
[...]
Text = Stream.readLine();
Text = Text.simplified();
doc << Text;
[...]
QString final = doc.join(" ");

نصائح أخرى

هل يمكن استخدام readAll وظيفة من QTextStream من أجل الحصول على سلسلة تحتوي على كل النص الخاص بك ومن ثم استخدام replace وظيفة من QString من أجل إزالة خطوط جديدة:

QString oneLineText = Stream.readAll().replace("\n"," ").simplified();

إذا كان لديك ملف كبير فمن الأفضل استخدام readLine وظيفة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top