1 /**********************************************************************
3 FILENAME: uiuc_1DdataFileReader.cpp
5 ----------------------------------------------------------------------
7 DESCRIPTION: Reads name of data file to be opened and reads data
8 into appropriate arrays or matrices
10 ----------------------------------------------------------------------
14 ----------------------------------------------------------------------
18 ----------------------------------------------------------------------
20 HISTORY: 02/15/2000 initial release
21 09/01/2002 (RD) added second data file reader for
23 06/30/2003 (RD) replaced istrstream with istringstream
24 to get rid of the annoying warning about
25 using the strstream header
27 ----------------------------------------------------------------------
29 AUTHOR(S): Jeff Scott <jscott@mail.com>
30 Robert Deters <rdeters@uiuc.edu>
32 ----------------------------------------------------------------------
36 ----------------------------------------------------------------------
38 INPUTS: -1D data file name
39 -conversion factor for y data
40 -conversion factor for x data
42 ----------------------------------------------------------------------
44 OUTPUTS: -array of x data
46 -max number of data sets
48 ----------------------------------------------------------------------
50 CALLED BY: uiuc_menu.cpp
52 ----------------------------------------------------------------------
54 CALLS TO: specified 1D data file
56 ----------------------------------------------------------------------
58 COPYRIGHT: (C) 2000 by Michael Selig
60 This program is free software; you can redistribute it and/or
61 modify it under the terms of the GNU General Public License
62 as published by the Free Software Foundation.
64 This program is distributed in the hope that it will be useful,
65 but WITHOUT ANY WARRANTY; without even the implied warranty of
66 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
67 GNU General Public License for more details.
69 You should have received a copy of the GNU General Public License
70 along with this program; if not, write to the Free Software
71 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
73 **********************************************************************/
75 #include "uiuc_1DdataFileReader.h"
78 uiuc_1DdataFileReader( string file_name,
79 double x[], double y[], int &xmax )
85 int counter = 1, data = 0;
89 static string uiuc_1DdataFileReader_error = " (from uiuc_1DdataFileReader.cpp) ";
91 /* Read the file and get the list of commands */
92 matrix = new ParseFile(file_name);
93 command_list = matrix -> getCommands();
95 for (LIST command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
97 linetoken1 = matrix -> getToken(*command_line, 1); // gettoken(string,tokenNo);
98 linetoken2 = matrix -> getToken(*command_line, 2); // 2 represents token No 2
100 istringstream token1(linetoken1.c_str());
101 istringstream token2(linetoken2.c_str());
103 token1 >> token_value1;
104 token2 >> token_value2;
106 x[counter] = token_value1 * convert_x;
107 y[counter] = token_value2 * convert_y;
110 //(RD) will create error check later, we can have more than 100
113 // uiuc_warnings_errors(6, uiuc_1DdataFileReader_error);
120 //can't have conversions in this version since the numbers are
121 //to stay as integers
123 uiuc_1DdataFileReader( string file_name,
124 double x[], int y[], int &xmax )
130 int counter = 1, data = 0;
135 /* Read the file and get the list of commands */
136 matrix = new ParseFile(file_name);
137 command_list = matrix -> getCommands();
139 for (LIST command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
141 linetoken1 = matrix -> getToken(*command_line, 1); // gettoken(string,tokenNo);
142 linetoken2 = matrix -> getToken(*command_line, 2); // 2 represents token No 2
144 istringstream token1(linetoken1.c_str());
145 istringstream token2(linetoken2.c_str());
147 token1 >> token_value1;
148 token2 >> token_value2;
150 x[counter] = token_value1;
151 y[counter] = token_value2;
159 // end uiuc_1DdataFileReader.cpp