Logo Coherent WaveBurst  
Reference Guide
Logo
 All Namespaces Files Functions Variables Macros Pages
ReadPeriodList.C
Go to the documentation of this file.
1 #define PERIOD_MAX_SIZE 10
2 
3 /*
4  TString run[PERIOD_MAX_SIZE];
5  double gps_start[PERIOD_MAX_SIZE];
6  TString date_start[PERIOD_MAX_SIZE];
7  double gps_stop[PERIOD_MAX_SIZE];
8  TString date_stop[PERIOD_MAX_SIZE];
9  double interval_day[PERIOD_MAX_SIZE];
10  int obs_time_sec[PERIOD_MAX_SIZE];
11  double obs_time_day[PERIOD_MAX_SIZE];
12 
13  int nPeriod = ReadPeriodList(ifile, run, gps_start, date_start, gps_stop, date_stop,
14  interval_day, obs_time_sec, obs_time_day);
15 
16 */
17 
18 int ReadPeriodList(TString ifile, TString* run, double* gps_start, TString* date_start, double* gps_stop, TString* date_stop,
19  double* interval_day, int* obs_time_sec, double* obs_time_day) {
20 
21  CWB::Toolbox::checkFile(ifile);
22 
23  // Open chunk list
24  ifstream in;
25  in.open(ifile.Data(),ios::in);
26  if (!in.good()) {cout << "Error Opening File : " << ifile << endl;exit(1);}
27 
28  int isize=0;
29  char str[1024];
30  int fpos=0;
31  while(true) {
32  in.getline(str,1024);
33  if (!in.good()) break;
34  if(str[0] != '#') isize++;
35  }
36  cout << "size " << isize << endl;
37  in.clear(ios::goodbit);
38  in.seekg(0, ios::beg);
39  if(isize==0) {cout << "Error : File " << ifile << " is empty" << endl;exit(1);}
40  if(isize>PERIOD_MAX_SIZE) {cout << "Error : File " << ifile << " > " << PERIOD_MAX_SIZE << endl;exit(1);}
41 
42  char srun[1024];
43  char sdate_start[1024];
44  char sdate_stop[1024];
45 
46  int k=0;
47  while(true) {
48  fpos=in.tellg();
49  in.getline(str,1024);
50  if (!in.good()) break;
51  if(str[0] == '#' || str[0]=='\0') continue;
52  in.seekg(fpos, ios::beg);
53  in >> srun >> gps_start[k] >> sdate_start >> gps_stop[k] >> sdate_stop >> interval_day[k] >> obs_time_sec[k] >> obs_time_day[k];
54  if(!in.good()) break;
55  run[k]=srun;
56  date_start[k]=sdate_start;
57  date_stop[k]=sdate_stop;
58  cout << "\t" << srun << "\t" << gps_start[k] << "\t" << sdate_start << "\t" << gps_stop[k]
59  << "\t" << sdate_stop << "\t" << obs_time_sec[k] << "\t" << obs_time_day[k] << endl;
60  k++;
61  if(k>=PERIOD_MAX_SIZE) {
62  cout << "WARNING: period list exceed PERIOD_MAX_SIZE = " << PERIOD_MAX_SIZE << endl;
63  break;
64  }
65  }
66  in.close();
67 
68  return k;
69 }
int ReadPeriodList(TString ifile, TString *run, double *gps_start, TString *date_start, double *gps_stop, TString *date_stop, double *interval_day, int *obs_time_sec, double *obs_time_day)
#define PERIOD_MAX_SIZE
Definition: ReadPeriodList.C:1