1

次のようなファイルに次のような行があります。

DEF PatientLoadView Group {

上記の行の「DEF」という単語の後にある単語を取得するためにファイルを解析しようとしています。string.split()を使用して行を分割し、QStringListクラスのindexOf関数を使用して「DEF」のインデックスを検索し、その横にある単語を取得しようとしています。ただし、indexOf関数はこの行に対して-1を返します。他のそのような行については、正しい値を返します。何が問題なのですか?私のコードは次のとおりです。

QString line = in.readLine();
if(line.contains("DEF"))
{
    QStringList lineSplit = line.split(" ");
    int index = lineSplit.indexOf("DEF",0);
    QString nodeName = lineSplit[index+1];
4

2 に答える 2

0

DEFの文字の前に何もないことを確認してくださいline

特に、「\n」またはその他の制御文字がないことを確認してください。

于 2012-10-01T07:09:00.103 に答える
0

問題の原因を見つけました。行はタブ'\t'で始まり、それは私が読み込んだ文字列の一部でした。このタブ文字を削除するとうまくいき、正しい結果を得ることができるようになりました。

お手伝いありがとう。

于 2012-10-03T04:08:43.913 に答える