1

INI ファイルからカンマ区切りのデータを読みたい。私はすでにここを読んだ:

...カンマはセパレータとして扱われ、QSettings 値関数は QStringList を返します。

ただし、INI ファイルのデータは次のようになります。

norm-factor=<<eof
1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0
1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0
1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0
1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0
1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0
1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0
eof

マトリックス全体は必要ありません。結合されたすべての行は、私にとって十分に公平です。しかし、QSettings はそのような構造を処理できますか?

これを使用して読む必要があります:

QStringList norms = ini->value("norm-factor", QStringList()).toStringList();

それとも、別の方法で解析する必要がありますか?

4

2 に答える 2

2

INI ファイルは独自の構文で改行を使用するため、改行が問題になります。Qt は、あなたのタイプの行継続 ( <<eol ... eol) をサポートしていないようです。

QSettings s("./inifile", QSettings::IniFormat);
qDebug() << s.value("norm-factor");

収量

QVariant(QString, "<<eof")

<<eol式自体が無効な INI である可能性があります。(ウィキペディアの INI ファイル)

ファイルを手動で解析することをお勧めします。

于 2015-08-24T13:42:29.913 に答える