使用頻度の高い API について,主要な内容を記述した, ビギナー向けのリファレンスマニュアルです.
| SLLIB クラス: | ストリーム / 文字列 / 文字列配列 / 文字列連想配列 / 多次元配列 |
| SLLIB クラス用関数: | 多次元配列用の統計用関数 / 多次元配列用の数学関数 / 多次元配列用の複素関数 |
| SLLIB クラス以外: | 定数・型の定義 / C99互換の複素数・複素関数 |
| SFITSIO クラス: | fitscc / fits_hdu / fits_image / fits_table / fits_table_col / fits_header / fits_header_record |
| SFITSIO クラス以外: | 関数 / 定数・型の定義 / FITSファイルの部分読み出し機能 / FITSテンプレート / 規約外FITS拡張 |
fits_table_colクラスは,ASCII Table HDU または Binary Table HDU の1つの カラムを表現します. オブジェクト内で mdarrayクラス のオブジェクトを管理します.
| クラス | ヘッダファイル | コード | namespace |
|---|---|---|---|
| fits_table_col | #include <sli/fits_table_col.h> |
cc | sli |
| メンバ関数 | 機能 |
|---|---|
| init() | オブジェクトの初期化・コピー |
| swap() | 2つのオブジェクト間での内容のスワップ |
| メンバ関数 | 機能 |
|---|---|
| name(), assign_name() | カラム名の設定 |
| type() | カラムデータの型種別(FITS::SHORT_T,FITS::FLOAT_T 等)を取得 |
| bytes() | カラムの型のバイト数を取得 |
| elem_length() | カラムの1行あたりの要素の個数を取得 |
| elem_byte_length() | カラムの1行あたりのバイト数を取得 |
| dcol_length() | TDIMn 指定における 1次元目の要素数(横方向の長さ)を取得 |
| drow_length() | TDIMn 指定における,2次元目以降の要素数(縦方向の長さ)を取得 |
| tzero(), tzero_is_set(), assign_tzero() | TZEROn 値に関する操作 |
| tscal(), tscal_is_set(), assign_tscal() | TSCALn 値に関する操作 |
| tnull(), tnull_is_set(), assign_tnull() | TNULLn 値に関する操作 |
| definition() | カラムの定義を fits::table_def 構造体で取得 |
| define() | カラム定義の設定 (fits::table_def 構造体を指定) |
| メンバ関数 | 機能 |
|---|---|
| convert_type() | データ型の変換・変更 |
| null_svalue(), assign_null_svalue() | svalue() や assign(double,...) で使用するNULL文字列の設定 |
| assign_default() | セルのデフォルト値に関する設定 |
| byte_t_ptr(), short_t_ptr() 等 | カラムデータ配列のバッファアドレスを取得 |
| dvalue() | double 型に変換された カラムデータ配列の1要素の値を取得 |
| lvalue(), llvalue() | 整数型(long or long long)に変換された カラムデータ配列の1要素の値を取得 |
| bvalue() | 真理値型(bool)に変換された カラムデータ配列の1要素の値を取得 |
| svalue() | 文字列型に変換された カラムデータ配列の1要素の値を取得 |
| get_svalue() | 文字列型に変換された カラムデータ配列の1要素の値を取得 |
| assign() | double型, long型などで指定された値を カラムデータ配列の1要素へ代入 |
| short_value() | セルの生の値を整数値(short型)で取得 (低レベル) |
| long_value() | セルの生の値を整数値(long型)で取得 (低レベル) |
| longlong_value() | セルの生の値を整数値(long long型)で取得 (低レベル) |
| byte_value() | セルの生の値を整数値(unsigned char型)で取得 (低レベル) |
| float_value() | セルの生の値を実数値(float型)で取得 (低レベル) |
| double_value() | セルの生の値を実数値(double型)で取得 (低レベル) |
| logical_value() | セルの生の値を論理値で取得 (低レベル) |
| bit_value() | セルの生の値を整数値(bit型)で取得 (低レベル) |
| string_value() | セルの生の値を文字列値で取得 (低レベル) |
| get_string_value() | セルの生の値を文字列値で取得 (低レベル) |
| assign_short() | 整数値(short型)でセルに値をそのまま代入 (低レベル) |
| assign_long() | 整数値(long型)でセルに値をそのまま代入 (低レベル) |
| assign_longlong() | 整数値(long long型)でセルに値をそのまま代入 (低レベル) |
| assign_byte() | 整数値(unsigned char型)でセルに値をそのまま代入 (低レベル) |
| assign_float() | 実数値(float型)でセルに値をそのまま代入 (低レベル) |
| assign_double() | 実数値(double型)でセルに値をそのまま代入 (低レベル) |
| assign_logical() | 論理値でセルに値をそのまま代入 (低レベル) |
| assign_bit() | 整数値(bit型)でセルに値をそのまま代入 (低レベル) |
| assign_string() | 文字列値でセルに値をそのまま代入 (低レベル) |
| メンバ関数 | 機能 |
|---|---|
| length() | テーブルの行数を取得 |
| resize() | 行数の変更 |
| insert() | 新しい行の挿入 |
| erase() | 行の消去 |
| clean() | 一部または全ての行のセルの値を初期化(デフォルト値をセット) |
| move() | 行から行へのコピー |
| swap() | 2つのオブジェクト間での内容のスワップ |
| flip() | 行の順序の反転 |
| import() | 外部カラムオブジェクトからのインポート |
| メンバ関数 | 機能 |
|---|---|
| heap_is_used() | 可変長配列かどうかを判定 |
| heap_type() | カラムのヒープ(可変長配列)のデータ型を取得 |
| heap_bytes() | ヒープ(可変長配列)の型のバイト数を取得 |
| max_array_length() | 可変長配列の最大の長さを取得 |
| array_length() | 固定長配列または可変長配列の要素数を取得 |
| array_heap_offset() | 可変長配列のヒープオフセットを取得 |
| assign_arrdesc() | 可変長配列の配列記述子をセット (低レベル) |
fits_table_col &init(); fits_table_col &init( const fits_table_col &src );
カラムの内容をすべて消去し,初期化します.
src
が指定された場合には,src
の内容をコピーしたカラムで上書きします.
src
の行数に関係なく,テーブルの行数はメンバ関数呼び出し前と変わりません
(srcの行数が自身のテーブルの行数に比べて長い場合,後部のセルの内容はコピーされません).
fits_table_col &swap( fits_table_col &obj );
指定されたオブジェクト
obj
の内容と自身の内容とを入れ替えます.
データ配列・ヘッダの内容,属性等すべての状態が入れ替わります.
const char *name() const; ... 1 fits_table_col &assign_name( const char *new_name ); ... 2
メンバ関数1は,カラム名を返します.
メンバ関数2は,new_name
で指定された文字列を,カラム名として設定します
(返り値は自身の参照です).
int type() const;
カラムのデータ型を返します.
返される値は,次のいずれかです:
FITS::DOUBLE_T,
FITS::FLOAT_T,
FITS::LONGLONG_T,
FITS::LONG_T,
FITS::SHORT_T,
FITS::BYTE_T,
FITS::BIT_T,
FITS::LOGICAL_T,
FITS::COMPLEX_T,
FITS::DOUBLECOMPLEX_T,
FITS::ASCII_T,
FITS::LONGARRDESC_T,
FITS::LLONGARRDESC_T.
long bytes() const;
カラムのデータ型が
FITS::ASCII_T
以外の場合,カラムのデータ型のバイト数を返します.
例えば,カラムのデータ型が
FITS::DOUBLE_T
の場合,sizeof(fits::double_t)
が返ります.
カラムのデータ型が
FITS::BIT_Tの場合は,1
が返ります.
カラムのデータ型が
FITS::ASCII_T
の場合は,TFORMn
と
TDIMn
指定によるカラム中の最小要素の文字列長を返します.
具体的には次の表のようになります.
TFORMnとTDIMnの指定 |
bytes() |
dcol_length()(1次元目の個数) |
drow_length()(2次元目の個数) |
elem_length() |
|---|---|---|---|---|
TFORMn = '120A' |
120 | 1 | 1 | 11 |
TFORMn = '120A10' |
10 | 12 | 1 | 12 |
TFORMn = '120A10'TDIMn = '(6,2)' |
10 | 6 | 2 | 12 |
TFORMn = '120A'TDIMn = '(10,6,2)' |
10 | 6 | 2 | 12 |
long elem_length() const;
カラムの1行の要素の個数を返します.
カラムのデータ型が
FITS::ASCII_T以外の場合,
例えば
TTYPEn
が
16D
の場合,16
が返ります(TDIMnとは無関係).
カラムのデータ型が
FITS::ASCII_T
の場合は,
bytes()メンバ関数
の項目にある表を参照してください.
long elem_byte_length() const;
カラムの1行あたりのバイト数を返します.
例えば,TTYPEn
が
16D
の場合,
sizeof(fits::double_t)*16
が返ります.
long dcol_length() const;
カラムの
TDIMn
指定における,多次元配列の1行あたりの要素数(1次元目の個数)を返します.
カラムのデータ型が
FITS::ASCII_T以外の場合,
例えば
TDIMn
が
(8x2)の場合,8が返ります.
カラムのデータ型が
FITS::ASCII_Tの場合は,
bytes()メンバ関数
の項目にある表を参照してください.
long drow_length() const;
カラムの
TDIMn
指定における,多次元配列の行数(2次元目以降の個数)を返します.
カラムのデータ型が
FITS::ASCII_T以外の場合,
例えばTDIMn
が
(8x2)の場合,2が返ります.
カラムのデータ型が
FITS::ASCII_Tの場合は,
bytes()メンバ関数
の項目にある表を参照してください.
double tzero() const; ... 1 bool tzero_is_set() const; ... 2 fits_table_col &assign_tzero( double zero, int prec = 15 ); ... 3 fits_table_col &erase_tzero(); ... 4
メンバ関数1は
TZEROn
の値を返します.
メンバ関数2は
TZEROn
の定義の有無を返します.
メンバ関数3は
TZEROn
の値を設定します(返り値は自身の参照です).
prec
には桁数を指定できます.
省略した場合,15桁の精度でヘッダレコードに書き込みます.
メンバ関数4は
TZEROn
の設定を消去します(返り値は自身の参照です).
double tscal() const; ... 1 bool tscal_is_set() const; ... 2 fits_table_col &assign_tscal( double scal, int prec = 15 ); ... 3 fits_table_col &erase_tscal(); ... 4
メンバ関数1は,
TSCALn
の値を返します.
メンバ関数2は,
TSCALn
の定義の有無を返します.
メンバ関数3は,
TSCALn
の値を設定します(返り値は自身の参照です).
prec
には桁数を指定できます.
省略した場合,15桁の精度でヘッダレコードに書き込みます.
メンバ関数4は,
TSCALn
の設定を消去します(返り値は自身の参照です).
long long tnull( const char **tnull_ptr = NULL ) const; ... 1 bool tnull_is_set() const; ... 2 fits_table_col &assign_tnull( long long null ); ... 3 fits_table_col &assign_tnull( const char *null ); ... 4 fits_table_col &erase_tnull(); ... 5
メンバ関数1は,
TNULLn
の値を返します.
カラムのデータ型が
文字列の場合に,TNULL値が必要な場合は,
tnull_ptr
で内部バッファのTNULL文字列のアドレスを取得する事ができます.
メンバ関数2は,
TNULLn
の定義の有無を返します.
メンバ関数3は,
TNULLn
の値を整数で設定します(返り値は自身の参照です).
メンバ関数4は,
TNULLn
の値を文字列で設定します(返り値は自身の参照です).
メンバ関数5は,
TNULLn
の設定を消去します(返り値は自身の参照です).
const fits::table_def &definition() const;
カラム定義の構造体オブジェクトへの参照を返します(改変不可). カラムの定義を別のカラムにコピーする等の場合に利用します.
fits::table_defの定義については,
バイナリテーブル・ASCIIテーブルを定義するための型(構造体)
または
fits.h
をご覧ください.
fits_table_col &define( const fits::table_def &def );
カラム定義の設定・変更を行ないます.
このメンバ関数は,新規カラムの定義の設定と,カラム定義の変更を兼ねています.
def.xxx == NULL
の場合は,その項目は変更しません.
fits::table_defの定義については,
バイナリテーブル・ASCIIテーブルを定義するための型(構造体)
または
fits.h
をご覧ください.
fits_table_col &convert_type( int new_type );
fits_table_col &convert_type( int new_type, double new_zero );
fits_table_col &convert_type( int new_type, double new_zero, double new_scale );
fits_table_col &convert_type( int new_type, double new_zero, double new_scale,
long long new_null );
整数型あるいは実数型のカラム(TFORMn
の指定が
'B',
'I',
'J',
'K',
'E',
'D'
を含む場合)のデータ型を
new_type
に変更します.
必要に応じて,内部バッファのバイトサイズも変更します.
new_type
に指定できる値(データ型)は,
FITS::DOUBLE_T,
FITS::FLOAT_T,
FITS::LONGLONG_T,
FITS::LONG_T,
FITS::SHORT_T,
FITS::BYTE_T
のいずれかです.
引数
new_zero,new_scale,new_null
が指定された場合は,ヘッダの
TZEROn,
TSCALn,
TNULLn
も変更し,それらの値を反映したデータに変換します.
引数
new_null
が有効なのは,
new_type
が示すデータ型が整数型の場合のみです.
文字列型や論理型のカラムはこのメンバ関数では変換できません.
const char *null_svalue() const; ... 1 fits_table_col &assign_null_svalue( const char *snull ); ... 2
メンバ関数1は,
svalue(),
assign( const char *, ... )
で使用する
NULL文字列値を返します.
メンバ関数2は,
svalue(),
assign( const char *, ... )
で使用する
NULL文字列値を設定します(自身の参照を返します).
デフォルトでは,
"NULL"
が高レベルAPI用のヌル文字列として設定されています.
fits_table_col &assign_default( double value ); fits_table_col &assign_default( float value ); fits_table_col &assign_default( long long value ); fits_table_col &assign_default( long value ); fits_table_col &assign_default( int value ); fits_table_col &assign_default( const char *value );
resize_rows() 等でテーブルの行の長さを大きくした場合の 新規セルの値を設定します.
assign_default()
は高レベルなメンバ関数で,
ヘッダの
TZEROn,TSCALEn,TNULLn
の値が反映されます.
NULL値をセットしたい場合は
NAN
をセットします.
/* BIT_T */ fits::bit_t *bit_t_ptr(); const fits::bit_t *bit_t_ptr() const; const fits::bit_t *bit_t_ptr_cs() const; /* */ fits::bit_t *bit_t_ptr( long row_idx ); const fits::bit_t *bit_t_ptr( long row_idx ) const; const fits::bit_t *bit_t_ptr_cs( long row_idx ) const; /* BYTE_T */ fits::byte_t *byte_t_ptr(); const fits::byte_t *byte_t_ptr() const; const fits::byte_t *byte_t_ptr_cs() const; /* */ fits::byte_t *byte_t_ptr( long row_idx ); const fits::byte_t *byte_t_ptr( long row_idx ) const; const fits::byte_t *byte_t_ptr_cs( long row_idx ) const; /* LOGICAL_T */ fits::logical_t *logical_t_ptr(); const fits::logical_t *logical_t_ptr() const; const fits::logical_t *logical_t_ptr_cs() const; /* */ fits::logical_t *logical_t_ptr( long row_idx ); const fits::logical_t *logical_t_ptr( long row_idx ) const; const fits::logical_t *logical_t_ptr_cs( long row_idx ) const; /* ASCII_T */ fits::ascii_t *ascii_t_ptr(); const fits::ascii_t *ascii_t_ptr() const; const fits::ascii_t *ascii_t_ptr_cs() const; /* */ fits::ascii_t *ascii_t_ptr( long row_idx ); const fits::ascii_t *ascii_t_ptr( long row_idx ) const; const fits::ascii_t *ascii_t_ptr_cs( long row_idx ) const; /* SHORT_T */ fits::short_t *short_t_ptr(); const fits::short_t *short_t_ptr() const; const fits::short_t *short_t_ptr_cs() const; /* */ fits::short_t *short_t_ptr( long row_idx ); const fits::short_t *short_t_ptr( long row_idx ) const; const fits::short_t *short_t_ptr_cs( long row_idx ) const; /* LONG_T */ fits::long_t *long_t_ptr(); const fits::long_t *long_t_ptr() const; const fits::long_t *long_t_ptr_cs() const; /* */ fits::long_t *long_t_ptr( long row_idx ); const fits::long_t *long_t_ptr( long row_idx ) const; const fits::long_t *long_t_ptr_cs( long row_idx ) const; /* LONGLONG_T */ fits::longlong_t *longlong_t_ptr(); const fits::longlong_t *longlong_t_ptr() const; const fits::longlong_t *longlong_t_ptr_cs() const; /* */ fits::longlong_t *longlong_t_ptr( long row_idx ); const fits::longlong_t *longlong_t_ptr( long row_idx ) const; const fits::longlong_t *longlong_t_ptr_cs( long row_idx ) const; /* FLOAT_T */ fits::float_t *float_t_ptr(); const fits::float_t *float_t_ptr() const; const fits::float_t *float_t_ptr_cs() const; /* */ fits::float_t *float_t_ptr( long row_idx ); const fits::float_t *float_t_ptr( long row_idx ) const; const fits::float_t *float_t_ptr_cs( long row_idx ) const; /* DOUBLE_T */ fits::double_t *double_t_ptr(); const fits::double_t *double_t_ptr() const; const fits::double_t *double_t_ptr_cs() const; /* */ fits::double_t *double_t_ptr( long row_idx ); const fits::double_t *double_t_ptr( long row_idx ) const; const fits::double_t *double_t_ptr_cs( long row_idx ) const; /* COMPLEX_T */ fits::complex_t *complex_t_ptr(); const fits::complex_t *complex_t_ptr() const; const fits::complex_t *complex_t_ptr_cs() const; /* */ fits::complex_t *complex_t_ptr( long row_idx ); const fits::complex_t *complex_t_ptr( long row_idx ) const; const fits::complex_t *complex_t_ptr_cs( long row_idx ) const; /* DOUBLECOMPLEX_T */ fits::doublecomplex_t *doublecomplex_t_ptr(); const fits::doublecomplex_t *doublecomplex_t_ptr() const; const fits::doublecomplex_t *doublecomplex_t_ptr_cs() const; /* */ fits::doublecomplex_t *doublecomplex_t_ptr( long row_idx ); const fits::doublecomplex_t *doublecomplex_t_ptr( long row_idx ) const; const fits::doublecomplex_t *doublecomplex_t_ptr_cs( long row_idx ) const; /* LONGARRDESC_T */ fits::longarrdesc_t *longarrdesc_t_ptr(); const fits::longarrdesc_t *longarrdesc_t_ptr() const; const fits::longarrdesc_t *longarrdesc_t_ptr_cs() const; /* */ fits::longarrdesc_t *longarrdesc_t_ptr( long row_idx ); const fits::longarrdesc_t *longarrdesc_t_ptr( long row_idx ) const; const fits::longarrdesc_t *longarrdesc_t_ptr_cs( long row_idx ) const; /* LLONGARRDESC_T */ fits::llongarrdesc_t *llongarrdesc_t_ptr(); const fits::llongarrdesc_t *llongarrdesc_t_ptr() const; const fits::llongarrdesc_t *llongarrdesc_t_ptr_cs() const; /* */ fits::llongarrdesc_t *llongarrdesc_t_ptr( long row_idx ); const fits::llongarrdesc_t *llongarrdesc_t_ptr( long row_idx ) const; const fits::llongarrdesc_t *llongarrdesc_t_ptr_cs( long row_idx ) const;
row_idxで指定された行の
セルデータの内部バッファアドレスを返します.
自身のデータ型に応じて,適切なものを使用します.
返される値はオブジェクト内部バッファのアドレスですから, オブジェクトが破棄されたり, 型やサイズが変更された場合は無効になります.
呼び出されたメンバ関数が,自身のデータ型に不適切な場合は, 例外が発生します.
double dvalue( long row_index ) const;
double dvalue( long row_index,
const char *elem_nm, long repetiti_idx = 0 ) const;
double dvalue( long row_index,
long elem_index, long repetition_idx = 0 ) const;
バイナリテーブル・アスキーテーブル共通:
セルの値を必要に応じて変換し,実数値で返します.
TZEROn
と
TSCALn
による変換に加え,NULL値に関する処理も行なう高レベルなメンバ関数です.
セルがNULL値を示す場合や引数が不正な場合は,
NAN
を返します.
バイナリテーブルの整数型カラムの場合や,
文字列型カラムにおいてTNULLnの値に
セルの値が一致した場合も,NULL値とします.
row_indexで行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
elem_name(名前)または
elem_index(インデックス)で要素を指定できます.
elem_nameには,TELEMn
に存在する名前を指定できます.
TDIMn
が指定されている場合,
1次元目のインデックスをelem_indexで,
2次元目のインデックスをrepetition_idxで指定できます.
ヘッダの
TZEROn
と
TSCALn
の値による変換が有効なのは,
TFORMn
の指定に
'B','I','J','K','E','D'
を含む場合です.
論理型のカラムの場合は,
値が
'T'
なら
1
を,値が
'F'
なら
0
を,それ以外の場合は
NAN
を返します.
文字列型のカラムの場合,セルの文字列を実数値に変換した値をそのまま返します.
セルの文字列は,空白文字を除去してからlibcのatof()関数で変換 するので,変換できる文字列は10進数または16進数の整数表現と 実数表現です.
アスキーテーブルの場合:
ヘッダの
TZEROn
と
TSCALn
の値による変換が有効なのは,
TFORMnの指定が
数値表現である事を示す('I','L','F','E','G','D'を含む)場合です.
TFORMn
が数値表現を示さない場合には,セルの文字列を実数値に変換した値をそのまま返します.
セルの文字列は,空白文字を除去してからlibcのatof()関数で変換 するので,変換できる文字列は10進数または16進数の整数表現と 実数表現です.
long lvalue( long row_index ) const;
long lvalue( long row_index,
const char *elem_nm, long repetiti_idx = 0 ) const;
long lvalue( long row_index,
long elem_index, long repetition_idx = 0 ) const;
long long llvalue( long row_index ) const;
long long llvalue( long row_index,
const char *elem_nm, long repetiti_idx = 0 ) const;
long long llvalue( long row_index,
long elem_index, long repetition_idx = 0 ) const;
バイナリテーブル・アスキーテーブル共通:
セルの値を必要に応じて実数に変換し,その実数値に最も近い整数値を返します.
変換の必要が無ければ,整数値をそのまま返します.
TZEROn
と
TSCALn
による変換に加え,NULL値に関する処理も行なう高レベルなメンバ関数です.
セルがNULL値を示す場合や引数が不正な場合は,
INDEF_LONGまたはINDEF_LLONG
を返します.
バイナリテーブルの整数型カラムの場合や,
文字列型カラムにおいてTNULLnの値に
セルの値が一致した場合も,NULL値とします.
row_indexで行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
elem_name(名前)または
elem_index(インデックス)で要素を指定できます.
elem_nameには,TELEMn
に存在する名前を指定できます.
TDIMn
が指定されている場合,
1次元目のインデックスをelem_indexで,
2次元目のインデックスをrepetition_idxで指定できます.
ヘッダの
TZEROn
と
TSCALn
の値による変換が有効なのは,
TFORMn
の指定に
'B','I','J','K','E','D'
を含む場合です.
論理型のカラムの場合は,
値が
'T'
なら
1
を,値が
'F'
なら
0
を,それ以外の場合は
INDEF_LONGまたはINDEF_LLONG
を返します.
文字列型のカラムの場合,セルの文字列を実数値に変換し,その値に最も近い整数値を返します.
セルの文字列は,空白文字を除去してからlibcのatof()関数で変換 するので,変換できる文字列は10進数または16進数の整数表現と 実数表現です.
アスキーテーブルの場合:
ヘッダの
TZEROn
と
TSCALn
の値による変換が有効なのは,
TFORMnの指定が
数値表現である事を示す('I','L','F','E','G','D'を含む)場合です.
TFORMn
が数値表現を示さない場合には,セルの文字列を実数値に変換し,その値に最も近い整数値を返します.
セルの文字列は,空白文字を除去してからlibcのatof()関数で変換 するので,変換できる文字列は10進数または16進数の整数表現と 実数表現です.
bool bvalue( long row_index ) const;
bool bvalue( long row_index,
const char *elem_nm, long repetiti_idx = 0 ) const;
bool bvalue( long row_index,
long elem_index, long repetition_idx = 0 ) const;
バイナリテーブル・アスキーテーブル共通:
セルの値を必要に応じて変換し,論理値
(true
か
false)で返します.
TZEROn
と
TSCALn
による変換に加え,NULL値に関する処理も行なう高レベルなメンバ関数です.
NULL値の場合や,引数が不正な場合は,falseを返します.
バイナリテーブルの整数型カラムの場合や,
文字列型カラムにおいてTNULLnの値に
セルの値が一致した場合も,NULL値とします.
返り値からNULL値かどうかの判断はできません. NULL値の検出が必要な場合は, dvalue()メンバ関数などを使ってください.
row_indexで行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
elem_name(名前)または
elem_index(インデックス)で要素を指定できます.
elem_nameには,TELEMn
に存在する名前を指定できます.
TDIMn
が指定されている場合,
1次元目のインデックスをelem_indexで,
2次元目のインデックスをrepetition_idxで指定できます.
論理型のカラムの場合,値が'T'ならtrueを,
そうでないならfalseを返します.
文字列型のカラムの場合,
セルの文字列を実数値に変換し,その値に最も近い整数値が0ならfalseを,
0でないならtrueを返します.
セルの文字列は,空白文字を除去してからlibcのatof()関数で変換するので,
変換できる文字列は10進数または16進数の整数表現と実数表現です.
セルの文字列が実数に変換できなかった場合,
'T'か't'で始まる文字列ならtrueを,
そうでない場合は,falseを返します.
整数型や実数型のカラムの場合,セルの値に,ヘッダの
TZEROn
と
TSCALn
を反映した実数値に最も近い整数値が0ならfalseを,
0でないならtrueを返します.
アスキーテーブルの場合:
TFORMn
が数値表現を示さない場合には,セルの文字列を実数値に変換し,その値に最も近い整数値が0ならfalseを,
0でないならtrueを返します.
TFORMn
が数値表現を示す場合には,セルの文字列を実数値に変換し,
さらにその値を
TZEROn
と
TSCALn
で変換し,その値に最も近い整数値が0ならfalseを,
0でないならtrueを返します.
セルの文字列は,空白文字を除去してからlibcのatof()関数で変換するので,
変換できる文字列は10進数または16進数の整数表現と実数表現です.
セルの文字列が実数に変換できなかった場合,
'T'か't'で始まる文字列ならtrueを,
そうでない場合は,falseを返します.
const char *svalue( long row_index ); const char *svalue( long row_index, const char *el_nm, long repeti_idx = 0 ); const char *svalue( long row_index, long elem_idx, long repetition_idx = 0 );
バイナリテーブル・アスキーテーブル共通:
セルの値を必要に応じて変換し,文字列値で返します.
TZEROn
と
TSCALn
による変換に加え,NULL値に関する処理も行なう高レベルなメンバ関数です.
セルがNULL値を示す場合や,引数が不正な場合は,
NULL文字列値(デフォルトでは"NULL")
を返します(この文字列は,TDISPnの指定によっては,
左右に空白文字が付加される事もあります).
バイナリテーブルの整数型カラムの場合や,
文字列型カラムにおいてTNULLnの値に
セルの値が一致した場合も,NULL値とします.
NULL文字列値(デフォルトでは"NULL")は,
assign_null_svalue()メンバ関数
で変更できます.
row_indexで行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
elem_name(名前)または
elem_index(インデックス)で要素を指定できます.
elem_nameには,TELEMn
に存在する名前を指定できます.
TDIMn
が指定されている場合,
1次元目のインデックスをelem_indexで,
2次元目のインデックスをrepetition_idxで指定できます.
文字列の場合は,TDIMnと
TFORMn
でそれぞれの次元における個数
が変わります.
TDISPn
が存在すれば,それに従ってフォーマットされた文字列を返します.
論理型のカラムの場合は,
TDISPn
の指定が無ければ,
"T","F",
NULL文字列値(デフォルトでは"NULL")
のいずれかを返します.
TDISPnの指定が有る場合は,
"T","F",
NULL文字列値を
TDISPn
でフォーマットした文字列を返します.
整数型や実数型のカラムの場合,セルの値を
ヘッダの
TZEROn
と
TSCALn
の値で変換し,さらに文字列に変換した値を返します.
整数型のカラムで,
TZEROn
が0,TSCALn
が1.0の場合で,かつ
TDISPn
の指定が無い場合には,libcのprintf()関数のフォーマット
"%lld"
に従って変換した文字列を返します.
上記以外の場合には,以下のprintf()関数のフォーマットに従って変換した文字列を返します.
FITS::FLOAT_T | "%.7G" |
FITS::DOUBLE_T,FITS::LONGLONG_T | "%.15G" |
FITS::LONG_T | "%.10G" |
上記以外のカラムタイプ | "%.7G" |
アスキーテーブルの場合:
TFORMn
が存在すれば,それに従ってフォーマットされた文字列を返します.
TFORMn
が数値表現を示す場合には,セルの文字列を実数値に変換し,その値を
TZEROn
と
TSCALn
で変換し,その値を
TFORMn
でフォーマットした文字列を返します.
const char *get_svalue( long row_index, tstring *dest ) const; ... 1
const char *get_svalue( long row_index, const char *el_nm,
tstring *dest ) const; ... 2
const char *get_svalue( long row_index, const char *el_nm, long repeti_idx,
tstring *dest ) const; ... 3
const char *get_svalue( long row_index, long elem_idx, tstring *dest ) const; ... 4
const char *get_svalue( long row_index, long elem_idx, long repetition_idx,
tstring *dest ) const; ... 5
ssize_t get_svalue( long row_index, char *dest_buf, size_t buf_size ) const; ... 6
ssize_t get_svalue( long row_index, const char *elem_name,
char *dest_buf, size_t buf_size ) const; ... 7
ssize_t get_svalue( long row_index, const char *elem_name, long repetition_idx,
char *dest_buf, size_t buf_size ) const; ... 8
ssize_t get_svalue( long row_index, long elem_index,
char *dest_buf, size_t buf_size ) const; ... 9
ssize_t get_svalue( long row_index, long elem_index, long repetition_idx,
char *dest_buf, size_t buf_size ) const; ... 10
セルの値を必要に応じて変換し,文字列値で
dest
で示された
文字列オブジェクト(tstring)
または,
dest_buf
で示されたバッファ(バッファ長はbuf_size)へ返します.
TZEROn
と
TSCALn
による変換に加え,NULL値に関する処理も行なう高レベルなメンバ関数です.
dest
または
dest_buf
へ返される文字列値や,
引数による行や要素の指定については,
svalue()
と同様です.詳細はそちらをご覧ください.
destの文字列バッファのアドレス.
'\0'は含まない).
fits_table_col &assign( double value, long row_index );
fits_table_col &assign( double value, long row_index,
const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign( double value, long row_index,
long elem_index, long repetition_idx = 0 );
fits_table_col &assign( float value, long row_index );
fits_table_col &assign( float value, long row_index,
const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign( float value, long row_index,
long elem_index, long repetition_idx = 0 );
fits_table_col &assign( long long value, long row_index );
fits_table_col &assign( long long value, long row_index,
const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign( long long value, long row_index,
long elem_index, long repetition_idx = 0 );
fits_table_col &assign( long value, long row_index );
fits_table_col &assign( long value, long row_index,
const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign( long value, long row_index,
long elem_index, long repetition_idx = 0 );
fits_table_col &assign( int value, long row_index );
fits_table_col &assign( int value, long row_index,
const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign( int value, long row_index,
long elem_index, long repetition_idx = 0 );
fits_table_col &assign( const char *value, long row_index );
fits_table_col &assign( const char *value, long row_index,
const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign( const char *value, long row_index,
long elem_index, long repetition_idx = 0 );
バイナリテーブル・アスキーテーブル共通:
実数,整数または文字列
value
から,必要に応じて変換処理を行なった値をセルに代入します.
TZEROn
と
TSCALn
による変換に加え,NULL値に関する処理も行なう高レベルなメンバ関数です.
value
に
NAN
またはNULL文字列値(デフォルトでは"NULL")
を与えた場合は,NULL値が与えられたものとします.
この時,文字列型カラムやバイナリテーブルの整数型カラムの場合に
TNULLn
の値があればその値をセルに代入します.
NULL文字列値(デフォルトでは"NULL")は,
assign_null_svalue()メンバ関数
で変更できます.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
引数が不正な場合は何もしません.
バイナリテーブルの場合:
elem_name(名前)または
elem_index(インデックス)で要素を指定できます.
elem_nameには,
TELEMnに存在する名前を指定できます.
TDIMn
が指定されている場合,
1次元目のインデックスをelem_indexで,
2次元目のインデックスをrepetition_idxで指定できます.
文字列の場合は,TDIMnと
TFORMn
でそれぞれの次元における個数
が変わります.
ヘッダの
TZEROn
と
TSCALn
の値が有効なのは,
TFORMn
の指定に
'B','I','J','K',
'E','D'を含む場合です.
整数型のカラムの場合は,
TZEROn
と
TSCALn
の変換を行なった後,最も近い整数値をセルに代入します.
論理型のカラムの場合は,valueに
最も近い整数値が0なら'F'を,
0以外の値なら'T'をセルに代入します.
NULL値(NANまたはNULL文字列値)が与えられた時は
'\0'を代入します.
数値型の引数が与えられた時,
文字列型のカラムの場合は,
printf()のフォーマット
"%.15G"の形式(valueがdouble型の場合)または
"%.7G"の形式(valueがfloat型の場合)で
変換した文字列をセルに代入します.
アスキーテーブルの場合:
TFORMn
の指定があれば,それに従って整形された文字列がセルに代入されます.
ヘッダの
TZEROn
と
TSCALn
の値が有効なのは,
TFORMnの指定に
'I','L','F','E',
'G','D'を含む場合です.
数値型の引数が与えられた時,
TFORMnが数値表現を示さない場合には,
printf()のフォーマット
"%.15G"の形式(valueがdouble型の場合)または
"%.7G"の形式(valueがfloat型の場合)で
変換した文字列をセルに代入します
(TFORMnの指定があった場合は,その文字列をさらに
フォーマット変換したものを代入します).
数値型の引数が与えられた時,
TFORMnが数値表現を示す場合には,valueを
TZEROnとTSCALnで変換を行なった後,
TFORMnのフォーマットの形式で変換した文字列をセルに代入します.
short short_value( long row_index ) const;
short short_value( long row_index,
const char *elem_nm, long repetition_idx = 0 ) const;
short short_value( long row_index,
long elem_index, long repetition_idx = 0 ) const;
バイナリテーブル・アスキーテーブル共通:
低レベルなメンバ関数で,セルの生の値を整数値(short型)で返します.
返されるに値には,ヘッダの
TZEROn
と
TSCALn
の値は反映されません.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
カラムの型が
FITS::SHORT_T
(TFORMn
の指定に'I'を含む)
の場合に最速でアクセスできます.
elem_name(名前)または
elem_index(インデックス)で要素を指定できます.
elem_nameには,
TELEMnに存在する名前を指定できます.
TDIMn
が指定されている場合,
1次元目のインデックスをelem_indexで,
2次元目のインデックスをrepetition_idxで指定できます.
引数が不正な場合や,カラムの型が
FITS::SHORT_T
ではない場合にセル値がshort型で表現できない場合(NULLも含む),NULL値(後述)を返します.
実数型のカラムの場合は, 最も近い整数値に丸めた値を返します.
論理型のカラムの場合は,値が
'T'
なら1を,値が
'F'
なら0を,
それ以外の場合はNULL値(後述)を返します.
文字列型のカラムの場合は, 文字列を実数に変換し,最も近い整数値に丸めた値を返します.
このメンバ関数におけるNULL値は,
TNULLnが設定されていればその値,
そうでなければINDEF_SHORT
です.
アスキーテーブルの場合:
バイナリテーブルの文字列型のカラムの場合と同様です.
long long_value( long row_index ) const;
long long_value( long row_index,
const char *elem_nm, long repetition_idx = 0 ) const;
long long_value( long row_index,
long elem_index, long repetition_idx = 0 ) const;
バイナリテーブル・アスキーテーブル共通:
低レベルなメンバ関数で,セルの生の値を整数値(long型)で返します.
返されるに値には,ヘッダの
TZEROn
と
TSCALn
の値は反映されません.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
カラムの型が
FITS::LONG_T
(TFORMn
の指定に'J'を含む)
の場合に最速でアクセスできます.
elem_name(名前)または
elem_index(インデックス)で要素を指定できます.
elem_nameには,
TELEMnに存在する名前を指定できます.
TDIMn
が指定されている場合,
1次元目のインデックスをelem_indexで,
2次元目のインデックスをrepetition_idxで指定できます.
引数が不正な場合や,カラムの型が
FITS::LONG_T
ではない場合にセル値がlong型で表現できない場合(NULLも含む),NULL値(後述)を返します.
実数型のカラムの場合は, 最も近い整数値に丸めた値を返します.
論理型のカラムの場合は,値が
'T'
なら1を,値が
'F'
なら0を,
それ以外の場合はNULL値(後述)を返します.
文字列型のカラムの場合は, 文字列を実数に変換し,最も近い整数値に丸めた値を返します.
このメンバ関数におけるNULL値は,
TNULLnが設定されていればその値,
そうでなければINDEF_LONG
です.
アスキーテーブルの場合:
バイナリテーブルの文字列型のカラムの場合と同様です.
long long longlong_value( long row_index ) const;
long long longlong_value( long row_index,
const char *elem_nm, long repetition_idx = 0 ) const;
long long longlong_value( long row_index,
long elem_index, long repetition_idx = 0 ) const;
バイナリテーブル・アスキーテーブル共通:
低レベルなメンバ関数で,セルの生の値を整数値(long long型)で返します.
返されるに値には,ヘッダの
TZEROn
と
TSCALn
の値は反映されません.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
カラムの型が
FITS::LONGLONG_T
(TFORMn
の指定に'K'を含む)
の場合に最速でアクセスできます.
elem_name(名前)または
elem_index(インデックス)で要素を指定できます.
elem_nameには,
TELEMnに存在する名前を指定できます.
TDIMn
が指定されている場合,
1次元目のインデックスをelem_indexで,
2次元目のインデックスをrepetition_idxで指定できます.
引数が不正な場合や,カラムの型が
FITS::LONGLONG_T
ではない場合にセル値がlong long型で表現できない場合(NULLも含む),NULL値(後述)を返します.
実数型のカラムの場合は, 最も近い整数値に丸めた値を返します.
論理型のカラムの場合は,値が
'T'
なら1を,値が
'F'
なら0を,
それ以外の場合はNULL値(後述)を返します.
文字列型のカラムの場合は, 文字列を実数に変換し,最も近い整数値に丸めた値を返します.
このメンバ関数におけるNULL値は,
TNULLnが設定されていればその値,
そうでなければINDEF_LLONG
です.
アスキーテーブルの場合:
バイナリテーブルの文字列型のカラムの場合と同様です.
unsigned char byte_value( long row_index ) const;
unsigned char byte_value( long row_index,
const char *elem_nm, long repetition_idx = 0 ) const;
unsigned char byte_value( long row_index,
long elem_index, long repetition_idx = 0 ) const;
バイナリテーブル・アスキーテーブル共通:
低レベルなメンバ関数で,セルの生の値を整数値(unsigned char型)で返します.
返されるに値には,ヘッダの
TZEROn
と
TSCALn
の値は反映されません.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
カラムの型が
FITS::BYTE_T
(TFORMn
の指定に'B'を含む)
の場合に最速でアクセスできます.
elem_name(名前)または
elem_index(インデックス)で要素を指定できます.
elem_nameには,
TELEMnに存在する名前を指定できます.
TDIMn
が指定されている場合,
1次元目のインデックスをelem_indexで,
2次元目のインデックスをrepetition_idxで指定できます.
引数が不正な場合や,カラムの型が
FITS::BYTE_T
ではない場合にセル値がunsigned char型で表現できない場合(NULLも含む),NULL値(後述)を返します.
実数型のカラムの場合は, 最も近い整数値に丸めた値を返します.
論理型のカラムの場合は,値が
'T'
なら1を,値が
'F'
なら0を,
それ以外の場合はNULL値(後述)を返します.
文字列型のカラムの場合は, 文字列を実数に変換し,最も近い整数値に丸めた値を返します.
このメンバ関数におけるNULL値は,
TNULLnが設定されていればその値,
そうでなければINDEF_UCHAR
です.
アスキーテーブルの場合:
バイナリテーブルの文字列型のカラムの場合と同様です.
float float_value( long row_index ) const;
float float_value( long row_index,
const char *elem_nm, long repetition_idx = 0 ) const;
float float_value( long row_index,
long elem_index, long repetition_idx = 0 ) const;
バイナリテーブル・アスキーテーブル共通:
低レベルなメンバ関数で,セルの生の値を実数値(float型)で返します.
返されるに値には,ヘッダの
TZEROn
と
TSCALn
の値は反映されません.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
カラムの型が
FITS::FLOAT_T
(TFORMn
の指定に'E'を含む)
の場合に最速でアクセスできます.
elem_name(名前)または
elem_index(インデックス)で要素を指定できます.
elem_nameには,
TELEMnに存在する名前を指定できます.
TDIMn
が指定されている場合,
1次元目のインデックスをelem_indexで,
2次元目のインデックスをrepetition_idxで指定できます.
引数が不正な場合やセル値がNULLを示している場合はNANを返します.
論理型のカラムの場合は,値が
'T'
なら1を,値が
'F'
なら0を,
それ以外の場合はNANを返します.
文字列型のカラムの場合は, 文字列を実数に変換した値を返します.
アスキーテーブルの場合:
バイナリテーブルの文字列型のカラムの場合と同様です.
double double_value( long row_index ) const;
double double_value( long row_index,
const char *elem_nm, long repetition_idx = 0 ) const;
double double_value( long row_index,
long elem_index, long repetition_idx = 0 ) const;
バイナリテーブル・アスキーテーブル共通:
低レベルなメンバ関数で,セルの生の値を実数値(double型)で返します.
返されるに値には,ヘッダの
TZEROn
と
TSCALn
の値は反映されません.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
カラムの型が
FITS::DOUBLE_T
(TFORMn
の指定に'D'を含む)
の場合に最速でアクセスできます.
elem_name(名前)または
elem_index(インデックス)で要素を指定できます.
elem_nameには,
TELEMnに存在する名前を指定できます.
TDIMn
が指定されている場合,
1次元目のインデックスをelem_indexで,
2次元目のインデックスをrepetition_idxで指定できます.
引数が不正な場合やセル値がNULLを示している場合はNANを返します.
論理型のカラムの場合は,値が
'T'
なら1を,値が
'F'
なら0を,
それ以外の場合はNANを返します.
文字列型のカラムの場合は, 文字列を実数に変換した値を返します.
アスキーテーブルの場合:
バイナリテーブルの文字列型のカラムの場合と同様です.
int logical_value( long row_index ) const;
int logical_value( long row_index,
const char *elem_nm, long repetition_idx = 0 ) const;
int logical_value( long row_index,
long elem_index, long repetition_idx = 0 ) const;
バイナリテーブル・アスキーテーブル共通:
低レベルなメンバ関数で,セルの生の値を論理値で返します.
返り値は,'T','F','\0'
の3種類です.
返されるに値には,ヘッダの
TZEROn
と
TSCALn
の値は反映されません.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
カラムの型が
FITS::LOGICAL_T
(TFORMn
の指定に'L'を含む)
の場合に最速でアクセスできます.
elem_name(名前)または
elem_index(インデックス)で要素を指定できます.
elem_nameには,
TELEMnに存在する名前を指定できます.
TDIMn
が指定されている場合,
1次元目のインデックスをelem_indexで,
2次元目のインデックスをrepetition_idxで指定できます.
引数が不正な場合やセル値がNULLを示している場合は
NULL値('\0')を返します.
論理型のカラムの場合,
値が'T'なら'T'を,
'F'なら'F'を,
これら以外なら'\0'を返します.
文字列型のカラムの場合は,NULL文字列なら'\0'
を返します.そうでない場合は文字列を実数に変換し,
その実数を最も近い整数値に丸めた後,
その整数値が0なら
'F'を,
0でないなら
'T'を返します.
文字列が実数に変換できなかった場合,
'T'か
't'で始まる文字列なら'T'を,
'F'か'f'で始まる文字列なら'F'を,
そうでない場合は,'\0'を返します.
実数型のカラムの場合は,値が数値ではないなら'\0'を返し,
値が数値なら最も近い整数値に丸めた後,その整数値が
0なら'F'を,
0でない数値なら'T'を返します.
整数型のカラムの場合,値がNULL値なら'\0'を,
値が0なら'F'を,
0でないなら'T'を返します.
アスキーテーブルの場合:
バイナリテーブルの文字列型のカラムの場合と同様です.
long bit_value( long row_index ) const;
long bit_value( long row_index, const char *elem_name,
long repetition_idx = 0, int nbit = 0 ) const;
long bit_value( long row_index, long elem_index, long repetition_idx = 0,
int nbit = 1 ) const;
バイナリテーブル・アスキーテーブル共通:
低レベルなメンバ関数で,セルの生の値を整数値で返します.
返されるに値には,ヘッダの
TZEROn
と
TSCALn
の値は反映されません.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
カラムの型が
FITS::BIT_T
(TFORMn
の指定に 'X' を含む)
の場合に最速でアクセスできます.
elem_name(名前)または
elem_index(インデックス)で要素を指定できます.
elem_nameには,
TELEMnに存在する名前を指定できます.
TDIMn
が指定されている場合,
1次元目のインデックスをelem_indexで,
2次元目のインデックスをrepetition_idxで指定できます.
カラムの型が
FITS::BIT_T
の場合,
引数 nbit で,指定した要素から右方向何ビットを
値として使うかを指定できます.
引数 nbit が0の場合,TELEMn で指定された
ビットフィールドの情報を利用します
(ビットフィールド拡張については,
「バイナリテーブルのカラム中のbit個数の定義」
をご覧ください).
カラムの型が
FITS::BIT_T
以外の場合は,
long_value()メンバ関数
と同じ動作です.
アスキーテーブルの場合:
long_value()メンバ関数 と同じ動作です.
const char *string_value( long row_index );
const char *string_value( long row_index,
const char *el_nm, long repeti_idx = 0 );
const char *string_value( long row_index,
long elem_idx, long repetition_idx = 0 );
バイナリテーブル・アスキーテーブル共通:
低レベルなメンバ関数で,セルの生の値を文字列値で返します.
返されるに値には,ヘッダの
TZEROn
と
TSCALn
の値は反映されません.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
カラムの型が
FITS::ASCII_T
(TFORMn
の指定に'A'を含む)
の場合に最速でアクセスできます.
elem_name(名前)または
elem_index(インデックス)で要素を指定できます.
elem_nameには,
TELEMnに存在する名前を指定できます.
TDIMn
が指定されている場合,
1次元目のインデックスをelem_indexで,
2次元目のインデックスをrepetition_idxで指定できます.
文字列の場合は,TDIMnと
TFORMn
でそれぞれの次元における個数
が変わります.
論理型のカラムの場合は,
"T",
"F",NULL文字列("")
のいずれかを返します.
整数型のカラムの場合は,
libcのprintf()関数の
フォーマット
"%lld"に従って変換した文字列または
NULL文字列("")を返します.
実数型のカラムの場合は,
libcのprintf()関数の
フォーマット
"%.15G"に従って変換した文字列または
NULL文字列("")を返します.
引数が不正な場合は
NULL文字列("")
を返します.
アスキーテーブルの場合:
バイナリテーブルの文字列型のカラムの場合と同様です.
const char *get_string_value( long row_index,
tstring *dest ) const;
const char *get_string_value( long row_index,
const char *elem_name,
tstring *dest ) const;
const char *get_string_value( long row_index,
const char *elem_name, long repetition_idx,
tstring *dest ) const;
const char *get_string_value( long row_index,
long elem_index,
tstring *dest ) const;
const char *get_string_value( long row_index,
long elem_index, long repetition_idx,
tstring *dest ) const;
ssize_t get_string_value( long row_index,
char *dest_buf, size_t buf_size ) const;
ssize_t get_string_value( long row_index,
const char *elem_name,
char *dest_buf, size_t buf_size ) const;
ssize_t get_string_value( long row_index,
const char *elem_name, long repetition_idx,
char *dest_buf, size_t buf_size ) const;
ssize_t get_string_value( long row_index,
long elem_index,
char *dest_buf, size_t buf_size ) const;
ssize_t get_string_value( long row_index,
long elem_index, long repetition_idx,
char *dest_buf, size_t buf_size ) const;
fits_table_col &assign_short( short value, long row_index );
fits_table_col &assign_short( short value, long row_index,
const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign_short( short value, long row_index,
long elem_index, long repetition_idx = 0 );
fits_table_col &assign_long( long value, long row_index );
fits_table_col &assign_long( long value, long row_index,
const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign_long( long value, long row_index,
long elem_index, long repetition_idx = 0 );
fits_table_col &assign_longlong( long long value, long row_index );
fits_table_col &assign_longlong( long long value, long row_index,
const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign_longlong( long long value, long row_index,
long elem_index, long repetition_idx = 0 );
fits_table_col &assign_byte( unsigned char value, long row_index );
fits_table_col &assign_byte( unsigned char value, long row_index,
const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign_byte( unsigned char value, long row_index,
long elem_index, long repetition_idx = 0 );
fits_table_col &assign_float( float value, long row_index );
fits_table_col &assign_float( float value, long row_index,
const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign_float( float value, long row_index,
long elem_index, long repetition_idx = 0 );
fits_table_col &assign_double( double value, long row_index );
fits_table_col &assign_double( double value, long row_index,
const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign_double( double value, long row_index,
long elem_index, long repetition_idx = 0 );
fits_table_col &assign_logical( int value, long row_index );
fits_table_col &assign_logical( int value, long row_index,
const char *elem_name, long repetition_idx = 0 );
fits_table_col &assign_logical( int value, long row_index,
long elem_index, long repetition_idx = 0 );
fits_table_col &assign_bit( long value, long row_index );
fits_table_col &assign_bit( long value, long row_index,
const char *elem_name, long repetition_idx = 0, int nbit = 0 );
fits_table_col &assign_bit( long value, long row_index,
long elem_index, long repetition_idx = 0, int nbit = 1 );
fits_table_col &assign_string( const char *value, long row_index );
fits_table_col &assign_string( const char *value, long row_index,
const char *elem_nam, long repetition_idx = 0 );
fits_table_col &assign_string( const char *value, long row_index,
long elem_index, long repetition_idx = 0 );
long length() const;
fits_table_col &resize( long num_rows );
fits_table_col &insert( long index, long num_rows );
fits_table_col &erase( long index, long num_rows );
fits_table_col &clean(); fits_table_col &clean( long index, long num_rows );
fits_table_col &move( long src_index, long num_rows, long dest_index );
fits_table_col &swap( long index0, long num_rows, long index1 );
fits_table_col &flip( long index, long num_rows );
fits_table_col &import( long dest_index,
const fits_table_col &from, long idx_begin = 0,
long num_rows = FITS::ALL );
bool heap_is_used() const;
int heap_type() const;
long heap_bytes() const;
long max_array_length() const;
long array_length( long row_idx, long elem_idx = 0 ) const;
long array_heap_offset( long row_idx, long elem_idx = 0 ) const;
fits_table_col &assign_arrdesc( long length, long offset,
long row_index, long elem_idx = 0 );