
* mln/io/dump/all.hh: Include a new file. * mln/io/dump/get_header.hh: New. --- milena/ChangeLog | 8 ++++ milena/mln/io/dump/all.hh | 1 + milena/mln/io/{raw => dump}/get_header.hh | 66 +++++++++++++---------------- 3 files changed, 38 insertions(+), 37 deletions(-) copy milena/mln/io/{raw => dump}/get_header.hh (65%) diff --git a/milena/ChangeLog b/milena/ChangeLog index 05234c0..21d7ddc 100644 --- a/milena/ChangeLog +++ b/milena/ChangeLog @@ -1,5 +1,13 @@ 2010-02-16 Guillaume Lazzara <z@lrde.epita.fr> + Add a routine to read dump files header. + + * mln/io/dump/all.hh: Include a new file. + + * mln/io/dump/get_header.hh: New. + +2010-02-16 Guillaume Lazzara <z@lrde.epita.fr> + Add a routine to read DICOM files header. * mln/io/dicom/all.hh: Include a new file. diff --git a/milena/mln/io/dump/all.hh b/milena/mln/io/dump/all.hh index ae405e8..69d465b 100644 --- a/milena/mln/io/dump/all.hh +++ b/milena/mln/io/dump/all.hh @@ -41,6 +41,7 @@ namespace mln } +# include <mln/io/dump/get_header.hh> # include <mln/io/dump/load.hh> # include <mln/io/dump/save.hh> diff --git a/milena/mln/io/raw/get_header.hh b/milena/mln/io/dump/get_header.hh similarity index 65% copy from milena/mln/io/raw/get_header.hh copy to milena/mln/io/dump/get_header.hh index fa5dbf3..2cfb4cb 100644 --- a/milena/mln/io/raw/get_header.hh +++ b/milena/mln/io/dump/get_header.hh @@ -23,12 +23,12 @@ // exception does not however invalidate any other reasons why the // executable file might be covered by the GNU General Public License. -#ifndef MLN_IO_RAW_GET_HEADER_HH -# define MLN_IO_RAW_GET_HEADER_HH +#ifndef MLN_IO_DUMP_GET_HEADER_HH +# define MLN_IO_DUMP_GET_HEADER_HH /// \file /// -/// Load a Milena image rawed into a file. +/// Load a Milena image dumped into a file. # include <iostream> # include <fstream> @@ -45,11 +45,11 @@ namespace mln namespace io { - namespace raw + namespace dump { - /// Store raw file header. - struct raw_header + /// Store dump file header. + struct dump_header { unsigned dim; std::string value_type; @@ -57,79 +57,71 @@ namespace mln }; - /// Retrieve header in a raw file. - raw_header get_header(const std::string& filename); + /// Retrieve header in a dump file. + dump_header get_header(const std::string& filename); # ifndef MLN_INCLUDE_ONLY - raw_header get_header(const std::string& filename) + dump_header get_header(const std::string& filename) { - trace::entering("mln::io::raw::get_header"); + trace::entering("mln::io::dump::get_header"); - raw_header header; + dump_header header; - std::string info_filename = filename + ".info"; - - std::ifstream info_file(info_filename.c_str()); - if (! info_file) + std::ifstream file(filename.c_str()); + if (! file) { - std::cerr << "io::raw::get_header - Error: cannot open file '" + std::cerr << "io::dump::get_header - Error: cannot open file '" << filename << "'!" << std::endl; abort(); } + + // Milena's file type ? std::string file_type; - info_file >> file_type; - if (file_type != "milena/raw") + file >> file_type; + if (file_type != "milena/dump") { - std::cerr << "io::raw::load - Error: invalid file type. '" + std::cerr << "io::dump::load - Error: invalid file type. '" << filename - << "' is NOT a valid milena/raw info file!" + << "' is NOT a valid milena/dump file!" << std::endl; abort(); } - char dev_null[30]; - - // Dimension ? - // Reading line title "Dim: " - info_file.read(dev_null, 5); - info_file >> header.dim; + // Dimension + file >> header.dim; // Size information - Skip it, useless. header.size.resize(header.dim); for (unsigned i = 0; i < header.dim; ++i) - info_file >> header.size[i]; + file >> header.size[i]; + // Skipping endline. char c; - info_file.get(c); - + file.get(c); // Value type name ? - // Reading line title "data type: " - info_file.read(dev_null, 11); // WARNING: value type name limited to 255 characters... char value_type[255]; - info_file.getline(value_type, 255); + file.getline(value_type, 255); header.value_type = value_type; - info_file.close(); - - trace::exiting("mln::io::raw::get_header"); + trace::exiting("mln::io::dump::get_header"); return header; } # endif // ! MLN_INCLUDE_ONLY - } // end of namespace mln::io::raw + } // end of namespace mln::io::dump } // end of namespace mln::io } // end of namespace mln -#endif // ! MLN_IO_RAW_GET_HEADER_HH +#endif // ! MLN_IO_DUMP_GET_HEADER_HH -- 1.5.6.5