使用頻度の高い 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
の場合は,TFORM
n
と
TDIM
n
指定によるカラム中の最小要素の文字列長を返します.
具体的には次の表のようになります.
TFORM nとTDIM nの指定 |
bytes() |
dcol_length() (1次元目の個数) |
drow_length() (2次元目の個数) |
elem_length() |
---|---|---|---|---|
TFORM n = '120A' |
120 | 1 | 1 | 11 |
TFORM n = '120A10' |
10 | 12 | 1 | 12 |
TFORM n = '120A10' TDIM n = '(6,2)' |
10 | 6 | 2 | 12 |
TFORM n = '120A' TDIM n = '(10,6,2)' |
10 | 6 | 2 | 12 |
long elem_length() const;
カラムの1行の要素の個数を返します.
カラムのデータ型が
FITS::ASCII_T以外の場合,
例えば
TTYPE
n
が
16D
の場合,16
が返ります(TDIM
nとは無関係).
カラムのデータ型が
FITS::ASCII_T
の場合は,
bytes()メンバ関数
の項目にある表を参照してください.
long elem_byte_length() const;
カラムの1行あたりのバイト数を返します.
例えば,TTYPE
n
が
16D
の場合,
sizeof(fits::double_t)*16
が返ります.
long dcol_length() const;
カラムの
TDIM
n
指定における,多次元配列の1行あたりの要素数(1次元目の個数)を返します.
カラムのデータ型が
FITS::ASCII_T
以外の場合,
例えば
TDIM
n
が
(8x2)
の場合,8
が返ります.
カラムのデータ型が
FITS::ASCII_T
の場合は,
bytes()メンバ関数
の項目にある表を参照してください.
long drow_length() const;
カラムの
TDIM
n
指定における,多次元配列の行数(2次元目以降の個数)を返します.
カラムのデータ型が
FITS::ASCII_T
以外の場合,
例えばTDIM
n
が
(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は
TZERO
n
の値を返します.
メンバ関数2は
TZERO
n
の定義の有無を返します.
メンバ関数3は
TZERO
n
の値を設定します(返り値は自身の参照です).
prec
には桁数を指定できます.
省略した場合,15桁の精度でヘッダレコードに書き込みます.
メンバ関数4は
TZERO
n
の設定を消去します(返り値は自身の参照です).
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は,
TSCAL
n
の値を返します.
メンバ関数2は,
TSCAL
n
の定義の有無を返します.
メンバ関数3は,
TSCAL
n
の値を設定します(返り値は自身の参照です).
prec
には桁数を指定できます.
省略した場合,15桁の精度でヘッダレコードに書き込みます.
メンバ関数4は,
TSCAL
n
の設定を消去します(返り値は自身の参照です).
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は,
TNULL
n
の値を返します.
カラムのデータ型が
文字列の場合に,TNULL
値が必要な場合は,
tnull_ptr
で内部バッファのTNULL
文字列のアドレスを取得する事ができます.
メンバ関数2は,
TNULL
n
の定義の有無を返します.
メンバ関数3は,
TNULL
n
の値を整数で設定します(返り値は自身の参照です).
メンバ関数4は,
TNULL
n
の値を文字列で設定します(返り値は自身の参照です).
メンバ関数5は,
TNULL
n
の設定を消去します(返り値は自身の参照です).
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 );
整数型あるいは実数型のカラム(TFORM
n
の指定が
'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
が指定された場合は,ヘッダの
TZERO
n,
TSCAL
n,
TNULL
n
も変更し,それらの値を反映したデータに変換します.
引数
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()
は高レベルなメンバ関数で,
ヘッダの
TZERO
n,TSCALE
n,TNULL
n
の値が反映されます.
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;
バイナリテーブル・アスキーテーブル共通:
セルの値を必要に応じて変換し,実数値で返します.
TZERO
n
と
TSCAL
n
による変換に加え,NULL値に関する処理も行なう高レベルなメンバ関数です.
セルがNULL値を示す場合や引数が不正な場合は,
NAN
を返します.
バイナリテーブルの整数型カラムの場合や,
文字列型カラムにおいてTNULL
nの値に
セルの値が一致した場合も,NULL値とします.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
elem_name
(名前)または
elem_index
(インデックス)で要素を指定できます.
elem_name
には,TELEM
n
に存在する名前を指定できます.
TDIM
n
が指定されている場合,
1次元目のインデックスをelem_index
で,
2次元目のインデックスをrepetition_idx
で指定できます.
ヘッダの
TZERO
n
と
TSCAL
n
の値による変換が有効なのは,
TFORM
n
の指定に
'B'
,'I'
,'J'
,'K'
,'E'
,'D'
を含む場合です.
論理型のカラムの場合は,
値が
'T'
なら
1
を,値が
'F'
なら
0
を,それ以外の場合は
NAN
を返します.
文字列型のカラムの場合,セルの文字列を実数値に変換した値をそのまま返します.
セルの文字列は,空白文字を除去してからlibcのatof()関数で変換 するので,変換できる文字列は10進数または16進数の整数表現と 実数表現です.
アスキーテーブルの場合:
ヘッダの
TZERO
n
と
TSCAL
n
の値による変換が有効なのは,
TFORM
nの指定が
数値表現である事を示す('I'
,'L'
,'F'
,'E'
,'G'
,'D'
を含む)場合です.
TFORM
n
が数値表現を示さない場合には,セルの文字列を実数値に変換した値をそのまま返します.
セルの文字列は,空白文字を除去してから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;
バイナリテーブル・アスキーテーブル共通:
セルの値を必要に応じて実数に変換し,その実数値に最も近い整数値を返します.
変換の必要が無ければ,整数値をそのまま返します.
TZERO
n
と
TSCAL
n
による変換に加え,NULL値に関する処理も行なう高レベルなメンバ関数です.
セルがNULL値を示す場合や引数が不正な場合は,
INDEF_LONG
またはINDEF_LLONG
を返します.
バイナリテーブルの整数型カラムの場合や,
文字列型カラムにおいてTNULL
nの値に
セルの値が一致した場合も,NULL値とします.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
elem_name
(名前)または
elem_index
(インデックス)で要素を指定できます.
elem_name
には,TELEM
n
に存在する名前を指定できます.
TDIM
n
が指定されている場合,
1次元目のインデックスをelem_index
で,
2次元目のインデックスをrepetition_idx
で指定できます.
ヘッダの
TZERO
n
と
TSCAL
n
の値による変換が有効なのは,
TFORM
n
の指定に
'B'
,'I'
,'J'
,'K'
,'E'
,'D'
を含む場合です.
論理型のカラムの場合は,
値が
'T'
なら
1
を,値が
'F'
なら
0
を,それ以外の場合は
INDEF_LONG
またはINDEF_LLONG
を返します.
文字列型のカラムの場合,セルの文字列を実数値に変換し,その値に最も近い整数値を返します.
セルの文字列は,空白文字を除去してからlibcのatof()関数で変換 するので,変換できる文字列は10進数または16進数の整数表現と 実数表現です.
アスキーテーブルの場合:
ヘッダの
TZERO
n
と
TSCAL
n
の値による変換が有効なのは,
TFORM
nの指定が
数値表現である事を示す('I'
,'L'
,'F'
,'E'
,'G'
,'D'
を含む)場合です.
TFORM
n
が数値表現を示さない場合には,セルの文字列を実数値に変換し,その値に最も近い整数値を返します.
セルの文字列は,空白文字を除去してから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
)で返します.
TZERO
n
と
TSCAL
n
による変換に加え,NULL値に関する処理も行なう高レベルなメンバ関数です.
NULL値の場合や,引数が不正な場合は,false
を返します.
バイナリテーブルの整数型カラムの場合や,
文字列型カラムにおいてTNULL
nの値に
セルの値が一致した場合も,NULL値とします.
返り値からNULL値かどうかの判断はできません. NULL値の検出が必要な場合は, dvalue()メンバ関数などを使ってください.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
elem_name
(名前)または
elem_index
(インデックス)で要素を指定できます.
elem_name
には,TELEM
n
に存在する名前を指定できます.
TDIM
n
が指定されている場合,
1次元目のインデックスをelem_index
で,
2次元目のインデックスをrepetition_idx
で指定できます.
論理型のカラムの場合,値が'T'
ならtrue
を,
そうでないならfalse
を返します.
文字列型のカラムの場合,
セルの文字列を実数値に変換し,その値に最も近い整数値が0ならfalse
を,
0でないならtrue
を返します.
セルの文字列は,空白文字を除去してからlibcのatof()関数で変換するので,
変換できる文字列は10進数または16進数の整数表現と実数表現です.
セルの文字列が実数に変換できなかった場合,
'T'
か't'
で始まる文字列ならtrue
を,
そうでない場合は,false
を返します.
整数型や実数型のカラムの場合,セルの値に,ヘッダの
TZERO
n
と
TSCAL
n
を反映した実数値に最も近い整数値が0ならfalse
を,
0でないならtrue
を返します.
アスキーテーブルの場合:
TFORM
n
が数値表現を示さない場合には,セルの文字列を実数値に変換し,その値に最も近い整数値が0ならfalse
を,
0でないならtrue
を返します.
TFORM
n
が数値表現を示す場合には,セルの文字列を実数値に変換し,
さらにその値を
TZERO
n
と
TSCAL
n
で変換し,その値に最も近い整数値が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 );
バイナリテーブル・アスキーテーブル共通:
セルの値を必要に応じて変換し,文字列値で返します.
TZERO
n
と
TSCAL
n
による変換に加え,NULL値に関する処理も行なう高レベルなメンバ関数です.
セルがNULL値を示す場合や,引数が不正な場合は,
NULL文字列値(デフォルトでは"NULL"
)
を返します(この文字列は,TDISP
nの指定によっては,
左右に空白文字が付加される事もあります).
バイナリテーブルの整数型カラムの場合や,
文字列型カラムにおいてTNULL
nの値に
セルの値が一致した場合も,NULL値とします.
NULL文字列値(デフォルトでは"NULL"
)は,
assign_null_svalue()メンバ関数
で変更できます.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
elem_name
(名前)または
elem_index
(インデックス)で要素を指定できます.
elem_name
には,TELEM
n
に存在する名前を指定できます.
TDIM
n
が指定されている場合,
1次元目のインデックスをelem_index
で,
2次元目のインデックスをrepetition_idx
で指定できます.
文字列の場合は,TDIM
nと
TFORM
n
でそれぞれの次元における個数
が変わります.
TDISP
n
が存在すれば,それに従ってフォーマットされた文字列を返します.
論理型のカラムの場合は,
TDISP
n
の指定が無ければ,
"T"
,"F"
,
NULL文字列値(デフォルトでは"NULL"
)
のいずれかを返します.
TDISP
nの指定が有る場合は,
"T"
,"F"
,
NULL文字列値を
TDISP
n
でフォーマットした文字列を返します.
整数型や実数型のカラムの場合,セルの値を
ヘッダの
TZERO
n
と
TSCAL
n
の値で変換し,さらに文字列に変換した値を返します.
整数型のカラムで,
TZERO
n
が0,TSCAL
n
が1.0の場合で,かつ
TDISP
n
の指定が無い場合には,libcのprintf()関数のフォーマット
"%lld"
に従って変換した文字列を返します.
上記以外の場合には,以下のprintf()関数のフォーマットに従って変換した文字列を返します.
FITS::FLOAT_T | "%.7G" |
FITS::DOUBLE_T ,FITS::LONGLONG_T | "%.15G" |
FITS::LONG_T | "%.10G" |
上記以外のカラムタイプ | "%.7G" |
アスキーテーブルの場合:
TFORM
n
が存在すれば,それに従ってフォーマットされた文字列を返します.
TFORM
n
が数値表現を示す場合には,セルの文字列を実数値に変換し,その値を
TZERO
n
と
TSCAL
n
で変換し,その値を
TFORM
n
でフォーマットした文字列を返します.
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
)へ返します.
TZERO
n
と
TSCAL
n
による変換に加え,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
から,必要に応じて変換処理を行なった値をセルに代入します.
TZERO
n
と
TSCAL
n
による変換に加え,NULL値に関する処理も行なう高レベルなメンバ関数です.
value
に
NAN
またはNULL文字列値(デフォルトでは"NULL"
)
を与えた場合は,NULL値が与えられたものとします.
この時,文字列型カラムやバイナリテーブルの整数型カラムの場合に
TNULL
n
の値があればその値をセルに代入します.
NULL文字列値(デフォルトでは"NULL"
)は,
assign_null_svalue()メンバ関数
で変更できます.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
引数が不正な場合は何もしません.
バイナリテーブルの場合:
elem_name
(名前)または
elem_index
(インデックス)で要素を指定できます.
elem_name
には,
TELEM
nに存在する名前を指定できます.
TDIM
n
が指定されている場合,
1次元目のインデックスをelem_index
で,
2次元目のインデックスをrepetition_idx
で指定できます.
文字列の場合は,TDIM
nと
TFORM
n
でそれぞれの次元における個数
が変わります.
ヘッダの
TZERO
n
と
TSCAL
n
の値が有効なのは,
TFORM
n
の指定に
'B'
,'I'
,'J'
,'K'
,
'E'
,'D'
を含む場合です.
整数型のカラムの場合は,
TZERO
n
と
TSCAL
n
の変換を行なった後,最も近い整数値をセルに代入します.
論理型のカラムの場合は,value
に
最も近い整数値が0なら'F'
を,
0以外の値なら'T'
をセルに代入します.
NULL値(NAN
またはNULL文字列値)が与えられた時は
'\0'
を代入します.
数値型の引数が与えられた時,
文字列型のカラムの場合は,
printf()
のフォーマット
"%.15G"
の形式(value
がdouble型の場合)または
"%.7G"
の形式(value
がfloat型の場合)で
変換した文字列をセルに代入します.
アスキーテーブルの場合:
TFORM
n
の指定があれば,それに従って整形された文字列がセルに代入されます.
ヘッダの
TZERO
n
と
TSCAL
n
の値が有効なのは,
TFORM
nの指定に
'I'
,'L'
,'F'
,'E'
,
'G'
,'D'
を含む場合です.
数値型の引数が与えられた時,
TFORM
nが数値表現を示さない場合には,
printf()
のフォーマット
"%.15G"
の形式(value
がdouble型の場合)または
"%.7G"
の形式(value
がfloat型の場合)で
変換した文字列をセルに代入します
(TFORM
nの指定があった場合は,その文字列をさらに
フォーマット変換したものを代入します).
数値型の引数が与えられた時,
TFORM
nが数値表現を示す場合には,value
を
TZERO
nとTSCAL
nで変換を行なった後,
TFORM
nのフォーマットの形式で変換した文字列をセルに代入します.
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型)で返します.
返されるに値には,ヘッダの
TZERO
n
と
TSCAL
n
の値は反映されません.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
カラムの型が
FITS::SHORT_T
(TFORM
n
の指定に'I'
を含む)
の場合に最速でアクセスできます.
elem_name
(名前)または
elem_index
(インデックス)で要素を指定できます.
elem_name
には,
TELEM
nに存在する名前を指定できます.
TDIM
n
が指定されている場合,
1次元目のインデックスをelem_index
で,
2次元目のインデックスをrepetition_idx
で指定できます.
引数が不正な場合や,カラムの型が
FITS::SHORT_T
ではない場合にセル値がshort型で表現できない場合(NULLも含む),NULL値(後述)を返します.
実数型のカラムの場合は, 最も近い整数値に丸めた値を返します.
論理型のカラムの場合は,値が
'T'
なら1を,値が
'F'
なら0を,
それ以外の場合はNULL値(後述)を返します.
文字列型のカラムの場合は, 文字列を実数に変換し,最も近い整数値に丸めた値を返します.
このメンバ関数におけるNULL値は,
TNULL
nが設定されていればその値,
そうでなければ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型)で返します.
返されるに値には,ヘッダの
TZERO
n
と
TSCAL
n
の値は反映されません.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
カラムの型が
FITS::LONG_T
(TFORM
n
の指定に'J'
を含む)
の場合に最速でアクセスできます.
elem_name
(名前)または
elem_index
(インデックス)で要素を指定できます.
elem_name
には,
TELEM
nに存在する名前を指定できます.
TDIM
n
が指定されている場合,
1次元目のインデックスをelem_index
で,
2次元目のインデックスをrepetition_idx
で指定できます.
引数が不正な場合や,カラムの型が
FITS::LONG_T
ではない場合にセル値がlong型で表現できない場合(NULLも含む),NULL値(後述)を返します.
実数型のカラムの場合は, 最も近い整数値に丸めた値を返します.
論理型のカラムの場合は,値が
'T'
なら1を,値が
'F'
なら0を,
それ以外の場合はNULL値(後述)を返します.
文字列型のカラムの場合は, 文字列を実数に変換し,最も近い整数値に丸めた値を返します.
このメンバ関数におけるNULL値は,
TNULL
nが設定されていればその値,
そうでなければ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型)で返します.
返されるに値には,ヘッダの
TZERO
n
と
TSCAL
n
の値は反映されません.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
カラムの型が
FITS::LONGLONG_T
(TFORM
n
の指定に'K'
を含む)
の場合に最速でアクセスできます.
elem_name
(名前)または
elem_index
(インデックス)で要素を指定できます.
elem_name
には,
TELEM
nに存在する名前を指定できます.
TDIM
n
が指定されている場合,
1次元目のインデックスをelem_index
で,
2次元目のインデックスをrepetition_idx
で指定できます.
引数が不正な場合や,カラムの型が
FITS::LONGLONG_T
ではない場合にセル値がlong long型で表現できない場合(NULLも含む),NULL値(後述)を返します.
実数型のカラムの場合は, 最も近い整数値に丸めた値を返します.
論理型のカラムの場合は,値が
'T'
なら1を,値が
'F'
なら0を,
それ以外の場合はNULL値(後述)を返します.
文字列型のカラムの場合は, 文字列を実数に変換し,最も近い整数値に丸めた値を返します.
このメンバ関数におけるNULL値は,
TNULL
nが設定されていればその値,
そうでなければ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型)で返します.
返されるに値には,ヘッダの
TZERO
n
と
TSCAL
n
の値は反映されません.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
カラムの型が
FITS::BYTE_T
(TFORM
n
の指定に'B'
を含む)
の場合に最速でアクセスできます.
elem_name
(名前)または
elem_index
(インデックス)で要素を指定できます.
elem_name
には,
TELEM
nに存在する名前を指定できます.
TDIM
n
が指定されている場合,
1次元目のインデックスをelem_index
で,
2次元目のインデックスをrepetition_idx
で指定できます.
引数が不正な場合や,カラムの型が
FITS::BYTE_T
ではない場合にセル値がunsigned char型で表現できない場合(NULLも含む),NULL値(後述)を返します.
実数型のカラムの場合は, 最も近い整数値に丸めた値を返します.
論理型のカラムの場合は,値が
'T'
なら1を,値が
'F'
なら0を,
それ以外の場合はNULL値(後述)を返します.
文字列型のカラムの場合は, 文字列を実数に変換し,最も近い整数値に丸めた値を返します.
このメンバ関数におけるNULL値は,
TNULL
nが設定されていればその値,
そうでなければ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型)で返します.
返されるに値には,ヘッダの
TZERO
n
と
TSCAL
n
の値は反映されません.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
カラムの型が
FITS::FLOAT_T
(TFORM
n
の指定に'E'
を含む)
の場合に最速でアクセスできます.
elem_name
(名前)または
elem_index
(インデックス)で要素を指定できます.
elem_name
には,
TELEM
nに存在する名前を指定できます.
TDIM
n
が指定されている場合,
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型)で返します.
返されるに値には,ヘッダの
TZERO
n
と
TSCAL
n
の値は反映されません.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
カラムの型が
FITS::DOUBLE_T
(TFORM
n
の指定に'D'
を含む)
の場合に最速でアクセスできます.
elem_name
(名前)または
elem_index
(インデックス)で要素を指定できます.
elem_name
には,
TELEM
nに存在する名前を指定できます.
TDIM
n
が指定されている場合,
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種類です.
返されるに値には,ヘッダの
TZERO
n
と
TSCAL
n
の値は反映されません.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
カラムの型が
FITS::LOGICAL_T
(TFORM
n
の指定に'L'
を含む)
の場合に最速でアクセスできます.
elem_name
(名前)または
elem_index
(インデックス)で要素を指定できます.
elem_name
には,
TELEM
nに存在する名前を指定できます.
TDIM
n
が指定されている場合,
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;
バイナリテーブル・アスキーテーブル共通:
低レベルなメンバ関数で,セルの生の値を整数値で返します.
返されるに値には,ヘッダの
TZERO
n
と
TSCAL
n
の値は反映されません.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
カラムの型が
FITS::BIT_T
(TFORM
n
の指定に 'X'
を含む)
の場合に最速でアクセスできます.
elem_name
(名前)または
elem_index
(インデックス)で要素を指定できます.
elem_name
には,
TELEM
nに存在する名前を指定できます.
TDIM
n
が指定されている場合,
1次元目のインデックスをelem_index
で,
2次元目のインデックスをrepetition_idx
で指定できます.
カラムの型が
FITS::BIT_T
の場合,
引数 nbit
で,指定した要素から右方向何ビットを
値として使うかを指定できます.
引数 nbit
が0の場合,TELEM
n で指定された
ビットフィールドの情報を利用します
(ビットフィールド拡張については,
「バイナリテーブルのカラム中の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 );
バイナリテーブル・アスキーテーブル共通:
低レベルなメンバ関数で,セルの生の値を文字列値で返します.
返されるに値には,ヘッダの
TZERO
n
と
TSCAL
n
の値は反映されません.
row_index
で行を指定します.
引数のインデックスは,0から始まる数字です.
バイナリテーブルの場合:
カラムの型が
FITS::ASCII_T
(TFORM
n
の指定に'A'
を含む)
の場合に最速でアクセスできます.
elem_name
(名前)または
elem_index
(インデックス)で要素を指定できます.
elem_name
には,
TELEM
nに存在する名前を指定できます.
TDIM
n
が指定されている場合,
1次元目のインデックスをelem_index
で,
2次元目のインデックスをrepetition_idx
で指定できます.
文字列の場合は,TDIM
nと
TFORM
n
でそれぞれの次元における個数
が変わります.
論理型のカラムの場合は,
"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 );