maryam: improve error handling some, dont abort on invalid file
This commit is contained in:
		
							parent
							
								
									13dfb9b1f0
								
							
						
					
					
						commit
						01b44309b7
					
				
					 1 changed files with 20 additions and 13 deletions
				
			
		| 
						 | 
				
			
			@ -22,22 +22,29 @@ int main(int argc, char** argv)
 | 
			
		|||
	{
 | 
			
		||||
		for(int i = 3; i < argc; ++i)
 | 
			
		||||
		{
 | 
			
		||||
			io::CSVReader<3, io::trim_chars<' '>, io::no_quote_escape<'\t'>> csvFile(argv[i]);
 | 
			
		||||
			if(!csvFile.next_line())
 | 
			
		||||
				return 1;
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				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 real;
 | 
			
		||||
			std::string imaginary;
 | 
			
		||||
			ModelData data;
 | 
			
		||||
			data.modelStr = eis::relaxisToEis(argv[2]);
 | 
			
		||||
			data.id = std::to_string(i-3);
 | 
			
		||||
			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));
 | 
			
		||||
				std::string frequency;
 | 
			
		||||
				std::string real;
 | 
			
		||||
				std::string imaginary;
 | 
			
		||||
				ModelData data;
 | 
			
		||||
				data.modelStr = eis::relaxisToEis(argv[2]);
 | 
			
		||||
				data.id = std::to_string(i-3);
 | 
			
		||||
				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));
 | 
			
		||||
 | 
			
		||||
			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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue