#include <xsvparser.hpp>
langedge::XSVParser< SEPARATOR, InputIteratorT >のコラボレーション図

Public 型 | |
| typedef IteratorCharTypeExtractor< InputIteratorT >::CharType | CharT |
| typedef std::basic_string< CharT > | StringT |
Public メソッド | |
| XSVParser () | |
| コンストラクタ | |
| bool | parse (InputIteratorT begin, InputIteratorT end) |
| CSV/TSV データを解析し、値を取得する. | |
| const std::vector< StringT > & | getValues () const |
| 解析結果の値を格納した文字列ベクタを得る. | |
| bool | full () const |
| parse() の結果、1列分の値をすべて取得できたか. | |
| bool | stopped () const |
| parse() の結果、1列分の値をすべて取得できたか. | |
| bool | succeeded () const |
| parse() は成功したか. | |
| bool | failed () const |
| parse() は失敗したか. | |
| size_t | getLength () const |
| 直前の parse() の呼び出しで処理された文字数を返す. | |
| size_t | getLines () const |
| これまで処理された行数を返す. | |
| InputIteratorT | getNextIterator () const |
| 直前の parse() の呼び出しで処理を終了した位置を示す入力反復子を返す. | |
| void | clearError () |
| エラー状態をクリアする. | |
入力反復子 (InputIteratorT) で指定された範囲のCSV (Comma Separated Values) または TSV (Tab Separated Values) データを解析し、 カンマまたはタブで区切られた各値を内部の文字列ベクタに格納するメソッド parse() を提供する。
テンプレートパラメータの SEPARATOR の値が ',' か '\t' かによって、 CSV/TSV のどちらを対象にするかが決定される。
|
|||||
|
|
|
|||||
|
|
|
|||||||||
|
コンストラクタ
|
|
||||||||||||||||
|
CSV/TSV データを解析し、値を取得する. CSV (Comma Separated Value) または TSV (Tab Separated Value) データを解析し、 カンマで区切られた値を内部の文字列ベクタに格納する。 文字列ベクタは、getValues() によって取得できる。 解析対象となる CSV/TSVデータは、2つの入力反復子によって指定される。 CSV/TSVファイルを直接解析するのであれば、istreambuf_iterator を入力反復子として 使用することができる。あるいは、getline() で1行ずつバッファに読み出して、 parse( buffer, buffer+strlen(buffer) ); のような呼び出しもできる。
parse() は、入力反復子が改行コード位置または end 位置に到達した時に、 そこで解析を終了する。 ただし、改行コード位置がダブルクォートで囲まれた値の処理中であった場合は、 そのまま処理が続行される。 処理の終了位置 (すなわち次回解析の開始位置) は、getNextIterator() によって取得することができる。
|
|
|||||||||
|
解析結果の値を格納した文字列ベクタを得る.
|
|
|||||||||
|
parse() の結果、1列分の値をすべて取得できたか.
|
|
|||||||||
|
parse() の結果、1列分の値をすべて取得できたか.
|
|
|||||||||
|
parse() は成功したか.
|
|
|||||||||
|
parse() は失敗したか.
|
|
|||||||||
|
直前の parse() の呼び出しで処理された文字数を返す.
|
|
|||||||||
|
これまで処理された行数を返す. エラーが生じた行番号は、getLines() + 1 となる。 |
|
|||||||||
|
直前の parse() の呼び出しで処理を終了した位置を示す入力反復子を返す. たとえば、入力反復子として istreambuf_iterator などを使用している場合は、 次の parse() の呼び出しには、getNextIterator() の返す反復子を用いるとよい。
|
|
|||||||||
|
エラー状態をクリアする.
入力のCSV/TSVデータに誤りがあって、エラーが返った場合、解析処理を続行するには、 本メソッドを呼んでそのエラー状態をクリアする必要がある。 |
1.4.2