// ファイルの読み込み操作用関数群

#ifndef __LOADFILE_H
#define __LOADFILE_H

#include "std.h"


/* ## 関数の宣言セクション ## */

// コメント付一行形式のデータファイルから一次元配列に格納  
int LoadData(string filename,  double* storage);

// コメント付データマップ形式のファイルからmap<s,d>に格納
int LoadMap(string delimiter, string filename, map<string, double> &data);

// テキストファイル->vector<string>に変換
int Convert(string filename, vector<string> &data);

// perl でいうところの split() っぽい関数のC++版実装
int split(string delimiter, string source, vector<string> &storage);




// おまけ
// split()をつかってテーブル形式のデータファイルから二次元ベクタに格納．
int LoadData(string delimiter, string filename,
	     vector< vector<double> > &output_vector);

// テーブル形式のデータファイルから二次元配列に格納．
int LoadData(string delimiter, string filename,
             int &size_i, int &size_j, double** &storage);

#endif
