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 #ifndef MLN_IO_PLOT_LOAD_HH
00027 # define MLN_IO_PLOT_LOAD_HH
00028
00032
00033 # include <iostream>
00034 # include <fstream>
00035 # include <cstring>
00036 # include <mln/core/image/image1d.hh>
00037 # include <mln/metal/equal.hh>
00038 # include <mln/util/array.hh>
00039 # include <mln/value/int_u8.hh>
00040 # include <mln/value/rgb8.hh>
00041
00042
00043 namespace mln
00044 {
00045
00046 namespace io
00047 {
00048
00049 namespace plot
00050 {
00051
00059
00060
00061
00062
00063
00064
00070 template <typename I>
00071 void load(util::array<I>& arr,
00072 const std::string& filename);
00073
00074
00075 # ifndef MLN_INCLUDE_ONLY
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091 template <typename I>
00092 inline
00093 void load(util::array<I>& arr, const std::string& filename)
00094 {
00095 trace::entering("mln::io::plot::load");
00096
00097 arr.clear();
00098 std::ifstream file_in(filename.c_str());
00099
00100 int MAX_LENGTH = 100;
00101 char line[MAX_LENGTH];
00102 char delims[] = " ";
00103 char *result = NULL;
00104 char *tmp_str = NULL;
00105
00106 while (file_in.getline(line, MAX_LENGTH))
00107 {
00108 if (strlen(line) > 0 && line[0] != '#')
00109 {
00110 tmp_str = strtok(line, delims);
00111 while (tmp_str != NULL)
00112 {
00113 result = tmp_str;
00114 tmp_str = strtok(NULL, delims);
00115 }
00116 arr.append(atof(result));
00117 }
00118 }
00119
00120 trace::exiting("mln::io::plot::load");
00121 }
00122
00123
00124 # endif // ! MLN_INCLUDE_ONLY
00125
00126 }
00127
00128 }
00129
00130 }
00131
00132
00133 #endif // ! MLN_IO_PLOT_LOAD_HH