source: ntrip/branches/BNC_2.12/src/pppCrdFile.cpp @ 8137

Last change on this file since 8137 was 7850, checked in by stuerze, 3 years ago

minor changes regareding string processing

File size: 2.7 KB
Line 
1
2// Part of BNC, a utility for retrieving decoding and
3// converting GNSS data streams from NTRIP broadcasters.
4//
5// Copyright (C) 2007
6// German Federal Agency for Cartography and Geodesy (BKG)
7// http://www.bkg.bund.de
8// Czech Technical University Prague, Department of Geodesy
9// http://www.fsv.cvut.cz
10//
11// Email: euref-ip@bkg.bund.de
12//
13// This program is free software; you can redistribute it and/or
14// modify it under the terms of the GNU General Public License
15// as published by the Free Software Foundation, version 2.
16//
17// This program is distributed in the hope that it will be useful,
18// but WITHOUT ANY WARRANTY; without even the implied warranty of
19// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20// GNU General Public License for more details.
21//
22// You should have received a copy of the GNU General Public License
23// along with this program; if not, write to the Free Software
24// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25
26/* -------------------------------------------------------------------------
27 * BKG NTRIP Client
28 * -------------------------------------------------------------------------
29 *
30 * Class:      t_pppCrdFile
31 *
32 * Purpose:    Read a priori coordinate file
33 *
34 * Author:     L. Mervart
35 *
36 * Created:    29-Jul-2014
37 *
38 * Changes:
39 *
40 * -----------------------------------------------------------------------*/
41
42#include <fstream>
43#include <sstream>
44#include "pppCrdFile.h"
45#include "bncutils.h"
46
47using namespace std;
48using namespace BNC_PPP;
49
50//
51//////////////////////////////////////////////////////////////////////////////
52void t_pppCrdFile::readCrdFile(const string& fileName, vector<t_staInfo>& staInfoVec) {
53
54  staInfoVec.clear();
55
56  ifstream inFile(fileName.c_str());
57  while (inFile.good()) {
58    string line; getline(inFile,line);
59    stripWhiteSpace(line);
60    if ( line.empty() || line[0] == '#'|| line[0] == '!') {
61      continue;
62    }
63
64    istringstream in;
65
66    t_staInfo staInfo;
67
68    size_t q1 = line.find('"');
69    if (q1 != string::npos) {
70      size_t q2 = line.find('"', q1+1);
71      if (q2 == string::npos) {
72        continue;
73      }
74      staInfo._name = line.substr(q1+1, q2-q1-1);
75      in.str(line.substr(q2+1));
76    }
77    else {
78      in.str(line);
79      in >> staInfo._name;
80    }
81
82    in >> staInfo._xyz(1) >> staInfo._xyz(2) >> staInfo._xyz(3);
83
84    if (!in.eof()) {
85      in >> staInfo._neuAnt(1) >> staInfo._neuAnt(2) >> staInfo._neuAnt(3);
86    }
87
88    if (!in.eof()) {
89      std::string hlp;
90      getline(in, hlp);
91      stripWhiteSpace(hlp);
92      staInfo._antenna.assign( hlp.substr(0,20));
93      hlp = hlp.erase(0, 20);
94      if (hlp.length()) {
95        stripWhiteSpace(hlp);
96        staInfo._receiver = hlp;
97      }
98    }
99
100    staInfoVec.push_back(staInfo);
101  }
102}
Note: See TracBrowser for help on using the repository browser.