ifstream を使用してテキスト ファイルの形式でテーブルを解析し、各エントリを評価/操作しようとしています。しかし、特定のアイテムの省略のために、これにアプローチする方法を理解するのに苦労しています. 次の表を検討してください。
NEW VER ID NAME
1 2a 4 "ITEM ONE" (2001)
1 7 "2 ITEM" (2002) {OCT}
1.1 10 "SOME ITEM 3" (2003)
1 12 "DIFFERENT ITEM 4" (2004)
1 a4 16 "ITEM5" (2005) {DEC}
ご覧のとおり、「NEW」列に何もない場合があります。私がやりたいことは、ID、名前、年 (括弧内) をメモし、その後に中括弧があるかどうかをメモすることです。
これをやり始めて「分割」機能を探していたのですが、前述の項目の欠落やタイトルがバラバラになってしまうなど、ちょっと複雑だなと思いました。
私が考えることができる唯一のことは、私が見た最新の数を追跡しながら、各行を単語ごとに読むことです. 引用符を打ったら、最後に見た番号が ID (分割のようなものを使用した場合は、引用符の直前の配列位置) であることに注意してください。次に、次の引用 (タイトル) まですべてを記録します。 、そして最後に、他の情報のために括弧と中括弧を探し始めます。ただし、これは非常に原始的なようで、これを行うためのより良い方法を探しています。
私は C++ のスキルを磨き、より大きな既存のデータセットを操作するためにこれを行っているので、可能であれば C++ を使用したいのですが、別の言語 (Perl または Python を検討しています) でこれが簡単にできる場合は、異なる言語と C++ とのインターフェイスの方法を学ぶだけです。私が今やろうとしているのは、最終的に C++ のオブジェクトになるデータをふるいにかけることです。そのため、C++ のスキルを向上させるチャンスがまだあります。
編集:これは正規表現のみを使用して完了することが可能であることも認識していますが、可能であれば、ファイル/文字列操作のさまざまな方法を使用してみたいと思います。