00001
00002
00003
00004
00005 #include "cddefines.h"
00006 #include "cddrive.h"
00007 #include "parser.h"
00008
00009
00010 long int cdGetLineList(
00011
00012
00013 const char chFile[],
00014
00015 vector<char*>& chLabels,
00016
00017 vector<realnum>& wl)
00018 {
00019 DEBUG_ENTRY( "cdGetLineList()" );
00020
00021
00022
00023 if( !lgcdInitCalled )
00024 {
00025 fprintf(stderr," cdInit must be called before cdGetLineList.\n");
00026 cdEXIT(EXIT_FAILURE);
00027 }
00028
00029
00030 const char* chFilename = ( strlen(chFile) == 0 ) ? "LineList_BLR.dat" : chFile;
00031
00032
00033 FILE* ioData = open_data( chFilename, "r", AS_LOCAL_DATA_TRY );
00034
00035 if( ioData == NULL )
00036 {
00037
00038 return -1;
00039 }
00040
00041
00042 ASSERT( chLabels.size() == 0 && wl.size() == 0 );
00043
00044 Parser p;
00045 char chLine[FILENAME_PATH_LENGTH_2];
00046
00047
00048 while( read_whole_line( chLine, (int)sizeof(chLine), ioData ) != NULL )
00049 {
00050 if( chLine[0] == '\n' )
00051 break;
00052
00053
00054 if( chLine[0] == '#' )
00055 continue;
00056
00057 p.setline(chLine);
00058 char* label = new char[5];
00059 realnum wavl;
00060 p.getLineID(label, &wavl);
00061 chLabels.push_back(label);
00062 wl.push_back(wavl);
00063 }
00064
00065 fclose( ioData );
00066
00067
00068 return chLabels.size();
00069 }