maryam: improve error handling some, dont abort on invalid file
This commit is contained in:
@ -22,22 +22,29 @@ int main(int argc, char** argv)
|
|||||||
{
|
{
|
||||||
for(int i = 3; i < argc; ++i)
|
for(int i = 3; i < argc; ++i)
|
||||||
{
|
{
|
||||||
io::CSVReader<3, io::trim_chars<' '>, io::no_quote_escape<'\t'>> csvFile(argv[i]);
|
try
|
||||||
if(!csvFile.next_line())
|
{
|
||||||
return 1;
|
io::CSVReader<3, io::trim_chars<' '>, io::no_quote_escape<'\t'>> csvFile(argv[i]);
|
||||||
|
if(!csvFile.next_line())
|
||||||
|
return 1;
|
||||||
|
|
||||||
csvFile.read_header(io::ignore_extra_column, "Impedance Real part", "Impedance Imaginary Part", "Frequency [Hz]");
|
csvFile.read_header(io::ignore_extra_column, "Impedance Real part", "Impedance Imaginary Part", "Frequency [Hz]");
|
||||||
|
|
||||||
std::string frequency;
|
std::string frequency;
|
||||||
std::string real;
|
std::string real;
|
||||||
std::string imaginary;
|
std::string imaginary;
|
||||||
ModelData data;
|
ModelData data;
|
||||||
data.modelStr = eis::relaxisToEis(argv[2]);
|
data.modelStr = eis::relaxisToEis(argv[2]);
|
||||||
data.id = std::to_string(i-3);
|
data.id = std::to_string(i-3);
|
||||||
while(csvFile.read_row(real, imaginary, frequency))
|
while(csvFile.read_row(real, imaginary, frequency))
|
||||||
data.data.push_back(eis::DataPoint(std::complex<fvalue>(std::stod(real), std::stod(imaginary)), std::stod(frequency)*2*M_PI));
|
data.data.push_back(eis::DataPoint(std::complex<fvalue>(std::stod(real), std::stod(imaginary)), std::stod(frequency)*2*M_PI));
|
||||||
|
|
||||||
saveData("maryam", data, outDir, argv[i]);
|
saveData("maryam", data, outDir, argv[i]);
|
||||||
|
}
|
||||||
|
catch(const io::error::missing_column_in_header& err)
|
||||||
|
{
|
||||||
|
std::cerr<<"Could not read file "<<err.what()<<std::endl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (const std::invalid_argument& err)
|
catch (const std::invalid_argument& err)
|
||||||
|
Reference in New Issue
Block a user