spBase APIリファレンス


ファイル入出力

ファイル入出力を行う関数です.

getfilesize

目的
バイナリファイルの大きさを得ます.

書式
#include <sp/spFile.h> long getfilesize(char *filename, int headsize);

引数
filename
ファイル名を指定します.
headsize
ヘッダの大きさを指定します.

戻り値
ファイルの大きさがバイト単位で返されます.headsizeが0以上の場合は, 元の大きさからheadsizeを引いた値が返されます.

説明
テキストファイルを扱う場合は, getfilesize_txtを用いて下さい.

関連項目
getfilesize_txt

getfilesize_txt

目的
テキストファイルの大きさを得ます.

書式
#include <sp/spFile.h> long getfilesize_txt(char *filename);

引数
filename
ファイル名を指定します.

戻り値
ファイルの大きさが返されます.headsizeが0以上の場合は, 元の大きさからheadsizeを引いた値が返されます.

説明
ここで言うテキストファイルの大きさは, ファイル内に,有効な行が何行あるかを示しています('#'で始まるコメント行を除く). バイナリファイルを扱う場合は, getfilesizeを用いて下さい.

関連項目
getfilesize

fskipheader

目的
ヘッダ部分を読み飛ばします.

書式
#include <sp/spFile.h> void fskipheader(long headsize, FILE *fp);

引数
headsize
ヘッダの大きさを指定します.
fp
対象とするファイルのファイルポインタを指定します.

説明
この関数を呼んだ場合は,ファイルポインタの位置に関わらず, ファイルの先頭を起点にして移動します.

関連項目
fskipbyte

fskipbyte

目的
ファイルの一部分を読み飛ばします.

書式
#include <sp/spFile.h> long fskipbyte(long len, FILE *fp);

引数
len
読み飛ばす部分の大きさをバイト単位で指定します.
fp
対象とするファイルのファイルポインタを指定します.

説明
この関数を呼んだ場合は,現在のファイルポインタの位置を起点にして移動します.

関連項目
fskipheader

shiftshort, shiftlong, shiftfloat, shiftdouble

目的
バッファーの内容をバッファー内の所望の位置に移動させます.

書式
#include <sp/spFile.h> void shiftshort(short *data, long length, long shift); void shiftlong(long *data, long length, long shift); void shiftfloat(float *data, long length, long shift); void shiftdouble(double *data, long length, long shift);

引数
data
バッファーの先頭を示すポインタを指定します.
length
バッファーの長さをブロック単位で指定します.
shift
バッファーをシフトする長さをブロック単位で指定します. shiftが正の場合は,後にシフトされ, shiftが負の場合は,前にシフトされます. シフトにより空きができた場合は,0が詰められます.

説明
バッファーの型により,これらの関数を使い分けて下さい.

swapshort, swaplong, swapfloat, swapdouble

目的
バッファー内のバイトスワップを行います.

書式
#include <sp/spFile.h> void swapshort(short *data, long length); void swaplong(long *data, long length); void swapfloat(float *data, long length); void swapdouble(double *data, long length);

引数
data
バッファーの先頭を示すポインタを指定します.
length
バッファーの長さをブロック単位で指定します.

説明
バッファーの型により,これらの関数を使い分けて下さい.

freadshort, freadlong, freadlong32, freadlong24, freadfloat, freaddouble, freadbyte, freadshorttod, freadlongtod, freadfloattod

目的
ファイルからデータをバッファーに読み込みます.

書式
#include <sp/spFile.h> long freadshort(short *data, long length, int swap, FILE *fp); long freadlong(long *data, long length, int swap, FILE *fp); long freadlong32(long *data, long length, int swap, FILE *fp); long freadlong24(long *data, long length, int swap, FILE *fp); long freadfloat(float *data, long length, int swap, FILE *fp); long freaddouble(double *data, long length, int swap, FILE *fp); long freadbyte(short *data, long length, FILE *fp); long freadshorttod(double *data, long length, int swap, FILE *fp); long freadlongtod(double *data, long length, int swap, FILE *fp); long freadfloattod(double *data, long length, int swap, FILE *fp);

引数
data
バッファーの先頭を示すポインタを指定します.
length
バッファーの長さをブロック単位で指定します.
swap
読み込み時に,バイトスワップを行うかどうかを指定します. 非ゼロを指定した場合に,バイトスワップを行います. ゼロを指定した場合には,ネイティブフォーマットで読み込まれます.
fp
対象とするファイルのファイルポインタを指定します.

戻り値
読み込んだブロックの数を返します.

説明
freadlong32は,環境によらず, 32ビットを1ブロックとしてデータを読み込みます.読み込み後のデータは, それぞれの環境におけるlong型が1ブロックの単位となります. freadlong24は,同様の関数で,24ビットを1ブロックとしたものです.

freadbyteは,1バイトを1ブロックとしてデータを読み込みます. 読み込み後のデータは,short型が1ブロックの単位となります. 読み込み後のデータの値は,ファイルにおけるデータの値とは異なります.

freadshorttod, freadlongtod, freadfloattodは, 読み込み後に,データをdouble型に変換します. そのため,読み込み後のデータは,double型が1ブロックの単位となります. 読み込みに伴うデータの値の変化はありません.

関連項目
fwriteshort, fwritelong, fwritelong32, fwritelong24, fwritefloat, fwritebyte, fwritedouble, fwritedoubletos, fwritedoubletol, fwritedoubletof

fwriteshort, fwritelong, fwritelong32, fwritelong24, fwritefloat, fwritebyte, fwritedouble, fwritedoubletos, fwritedoubletol, fwritedoubletof

目的
データをファイルに書き込みます.

書式
#include <sp/spFile.h> long fwriteshort(short *data, long length, int swap, FILE *fp); long fwritelong(long *data, long length, int swap, FILE *fp); long fwritelong32(long *data, long length, int swap, FILE *fp); long fwritelong24(long *data, long length, int swap, FILE *fp); long fwritefloat(float *data, long length, int swap, FILE *fp); long fwritebyte(short *data, long length, FILE *fp); long fwritedouble(double *data, long length, int swap, FILE *fp); long fwritedoubletos(double *data, long length, int swap, FILE *fp); long fwritedoubletol(double *data, long length, int swap, FILE *fp); long fwritedoubletof(double *data, long length, int swap, FILE *fp);

引数
data
バッファーの先頭を示すポインタを指定します.
length
バッファーの長さをブロック単位で指定します.
swap
書き込み時に,バイトスワップを行うかどうかを指定します. 非ゼロを指定した場合に,バイトスワップを行います. ゼロを指定した場合には,ネイティブフォーマットで書き込まれます.
fp
対象とするファイルのファイルポインタを指定します.

戻り値
読み込んだブロックの数を返します.

説明
fwritelong32は, long型が1ブロックの単位となっているデータを, 32ビットを1ブロックとして書き込みます. fwritelong24は,同様の関数で,24ビットを1ブロックとしたものです.

fwritebyteは, short型が1ブロックの単位となっているデータを, 1バイトを1ブロックとして書き込みます. 書き込み後のファイルにおけるデータの値は,入力データの値とは異なります.

fwritedoubletos, fwritedoubletol, fwritedoubletofは, double型が1ブロックの単位となっているデータを, 書き込みの際に,それぞれshort型,long型,float型に変換して書き込みます. 書き込みに伴うデータの値の変化はありません.そのため,オーバーフローに注意して下さい.

関連項目
freadshort, freadlong, freadlong32, freadlong24, freadfloat, freaddouble, freadbyte, freadshorttod, freadlongtod, freadfloattod

getnumrow, getnumcol

目的
テキストファイルの大きさを得ます.

書式
#include <sp/spFile.h> int getnumrow(char *filename); int getnumcol(char *filename);

引数
filename
対象とするファイルのファイル名を指定します.

戻り値
getnumrowの場合は,行の数が, getnumcolの場合は,列の数が返されます.

説明
getnumcolは,ファイル内の最初の有効な行における,列の数を返します. getnumcolは,ファイル内の有効な行の数を返します. ここで言う有効な行とは,'#'で始まるコメント行を除いた行のことです.

関連項目
getfilesize_txt

fgetcol, sgetcol

目的
所望の列のデータを得ます.

書式
#include <sp/spFile.h> int fgetcol(char *buf, int col, FILE *fp); int sgetcol(char *buf, int col, char *line);

引数
buf
データを格納するバッファーを指定します. あらかじめメモリーを確保しておいて下さい.
col
行を指定します.n-1が,n行目を示しています.
fp
対象とするファイルのファイルポインタを指定します.
line
対象とする文字列の先頭を示すポインタを指定します.

戻り値
関数のコールに失敗した場合には,EOFが返ります.

説明
`#'以降は,コメントと見なされ,無視されます. `\#'は,コメントとは見なされず,`#'に変換されて読み込まれます.

関連項目
fgetline, getline

fgetline, getline

目的
テキストファイルや標準入力から,1行分のデータを読み込みます.

書式
#include <sp/spFile.h> int fgetline(char *buf, FILE *fp); int getline(char *buf);

引数
buf
データを格納するバッファーを指定します. あらかじめメモリーを確保しておいて下さい.
fp
対象とするファイルのファイルポインタを指定します.

戻り値
関数のコールに失敗した場合には,EOFが返ります.

説明
fgetlineはファイルから, getlineは標準入力からデータを読み込みます.

'#'以降は,コメントと見なされ,無視されます. `\#'は,コメントとは見なされませんが,そのまま`\#'として読み込まれます.

関連項目
fgetcol, sgetcol

getsn

目的
標準入力から1行分のデータを,所定のサイズまで読み込みます.

書式
#include <sp/spFile.h> char *getsn(char *buf, int size);

引数
buf
データを格納するバッファーを指定します. あらかじめメモリーを確保しておいて下さい.
size
最大のサイズを指定します.このサイズ以上は読み込まれません.

戻り値
関数のコールに失敗した場合には,NULLが返ります.

説明
標準で用意されているgetsのバグを回避するために作られました.

sscansetup

目的
セットアップファイルの形式を持つ文字列データから, パラメータ名と設定値を取り出します.

書式
#include <sp/spFile.h> int sscansetup(char *line, char *name, char *value);

引数
line
対象とする文字列の先頭を示すポインタを指定します.
name
パラメータ名を格納するバッファーを指定します. あらかじめメモリーを確保しておいて下さい.
value
設定値を格納するバッファーを指定します. あらかじめメモリーを確保しておいて下さい.

戻り値
関数のコールに失敗した場合には,EOFが返ります.

説明
'#'以降は,コメントと見なされ,無視されます.

関連項目
spReadSetup

Last modified: "2012-06-09 02:08:48 hideki"