00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #include "SimpleDataWriter.hpp"
00030 #include "OutputFileHandler.hpp"
00031 #include "Exception.hpp"
00032
00033
00034 SimpleDataWriter::SimpleDataWriter(const std::string& rDirectory,
00035 const std::string& rFileName,
00036 const std::vector<std::vector<double> >& rData,
00037 bool cleanDirectory)
00038 {
00039 if (rData.size()==0)
00040 {
00041 EXCEPTION("Data vector is empty");
00042 }
00043
00044 for (unsigned i=0; i<rData.size(); i++)
00045 {
00046 if (rData[i].size() != rData[0].size())
00047 {
00048 EXCEPTION("Data vector sizes are not all equal");
00049 }
00050 }
00051
00052 OutputFileHandler output_file_handler(rDirectory, cleanDirectory);
00053 out_stream p_file = output_file_handler.OpenOutputFile(rFileName);
00054
00055 for (unsigned j=0; j<rData[0].size(); j++)
00056 {
00057 for (unsigned i=0; i<rData.size(); i++)
00058 {
00059 (*p_file) << rData[i][j] << "\t";
00060 }
00061 (*p_file) << "\n";
00062 }
00063 p_file->close();
00064 }
00065
00066 SimpleDataWriter::SimpleDataWriter(const std::string& rDirectory,
00067 const std::string& rFileName,
00068 const std::vector<double>& rT,
00069 const std::vector<double>& rX,
00070 bool cleanDirectory)
00071 {
00072 std::vector<std::vector<double> > data;
00073 data.push_back(rT);
00074 data.push_back(rX);
00075 SimpleDataWriter(rDirectory, rFileName, data, cleanDirectory);
00076 }
00077
00078 SimpleDataWriter::SimpleDataWriter(const std::string& rDirectory,
00079 const std::string& rFileName,
00080 const std::vector<double>& rData,
00081 bool cleanDirectory)
00082 {
00083 std::vector<std::vector<double> > data;
00084 data.push_back(rData);
00085 SimpleDataWriter(rDirectory, rFileName, data, cleanDirectory);
00086 }