32 <<
" hddmcat file1.hddm [file2.hddm] ...\n\n"
36 int main(
int argC,
char* argV[])
41 for (argInd = 1; argInd < argC; argInd++)
43 if (argV[argInd][0] !=
'-')
60 else if (argInd < argC)
62 hddmFile =
string(argV[argInd++]);
63 ifs =
new ifstream(hddmFile.c_str());
72 cerr <<
"hddmcat: Error opening input stream " << hddmFile << endl;
76 list<std::string*> stringList;
77 stringList.push_back(
new string);
78 list<std::string*>::iterator
h;
79 h = stringList.begin();
80 if (std::getline(*ifs,**h))
82 if ((*h)->substr(0,5) ==
"<?xml")
84 cerr <<
"hddmcat: Error reading input stream " << hddmFile << endl;
85 cerr <<
"Input file appears to be an xml document!" << endl;
88 else if ((*h)->substr(0,5) ==
"<HDDM")
94 cerr <<
"hddmcat: Input stream contains invalid hddm header"
101 cerr <<
"hddmcat: Error reading from input stream " << hddmFile << endl;
104 stringList.push_back(
new string);
105 while (getline(*ifs,**(++h)))
108 if (**h ==
"</HDDM>")
112 stringList.push_back(
new string);
115 const int bufferSize = 65536;
116 char buffer[bufferSize];
118 while ((count = (ifs->read(buffer,bufferSize), ifs->gcount())))
120 cout.write(buffer,count);
124 ((ifstream*)ifs)->close();
127 while (argInd < argC)
130 hddmFile = argV[argInd++];
131 ifs =
new ifstream(hddmFile.c_str());
134 cerr <<
"hddmcat: Error opening input stream " << hddmFile << endl;
137 h = stringList.begin();
139 if (getline(*ifs,line))
141 if (line.substr(0,5) ==
"<?xml")
143 cerr <<
"hddmcat: Error reading input stream " << hddmFile << endl;
144 cerr <<
"Input file appears to be an xml document!" << endl;
147 else if (**h == line)
153 cerr <<
"hddmcat: Input stream contains invalid hddm header"
160 cerr <<
"hddmcat: Error reading from input stream " << hddmFile
164 while (getline(*ifs,line))
166 if (h == stringList.end() || **h != line)
168 cerr <<
"hddmcat: Input stream contains invalid hddm header"
172 else if (++h == stringList.end() && line ==
"</HDDM>")
178 while ((count = (ifs->read(buffer,bufferSize), ifs->gcount())))
180 cout.write(buffer,count);
int main(int argc, char *argv[])