1

ファイルから取得したそのようなテキストを分割するにはどうすればよいですか?

USA Florida
Russia Murmansk
Germany Bonn

USA、Florida、Russia、Murmansk ... 各単語を QString に保存する必要があります。基本的に私はこのようにやっています:

QFile df("../MyData/visit.DAT");

    if (!df.open(QIODevice::ReadOnly | QIODevice::Text)) {

        qDebug()<<"Could not open file for reading";
        return;
    }

    QTextStream txStream(&df);
    while (!txStream.atEnd()) {

        QString text = txStream.readLine();
        QStringList splitD = text.split(" ");
        qDebug() << "-"<<splitD;
    }

    dataFile.close();

QStringList から値を取得しようとする.value(index)と、両方の単語で同じ行が取得されます。これらの単語を正しい方法で分割する方法は??

4

3 に答える 3

0

分割メソッドでタブ文字を渡すことで、QStringList行から2つの単語が返され、アプリをクラッシュさせることなくそれらにアクセスできることがわかりました。

  QTextStream txStream(&df);
    while (!txStream.atEnd()) {

        QString text = txStream.readLine();
        QStringList splitD = text.split("\t");

        if (i%2==0) {

            qDebug() << "Country : "<<splitD.at(0);
            i++;

        } else {

           qDebug() << "City : "<<splitD.at(1);
            i++;
        }
    }
于 2012-04-08T16:36:26.197 に答える
0

演算子 » を使用するか、分割することができます。演算子 » も連結できます。したがって、次のようなことができます。

QString country, city;
txStream » country » city;
于 2012-04-08T15:05:59.523 に答える
0

リスト「splitData」全体をqDebugに入れます。これには、「USA」と「フロリダ」の 2 つの項目が含まれます。ほとんどの場合、コードは希望どおりに動作しますが、出力を誤解しています。試す:

qDebug() << splitData.at(0);
qDebug() << splitData.at(1);

これにより、次の 2 行が表示されます。

USA
Florida
于 2012-04-08T14:32:14.577 に答える