-
Notifications
You must be signed in to change notification settings - Fork 2
/
Orbitliste.cpp
99 lines (94 loc) · 3.19 KB
/
Orbitliste.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/*
* Orbitliste.cpp
*
* Copyright (c) 2011-2017 Stefan Bender
* Copyright (c) 2010-2011 Martin Langowski
*
* Initial version created on: 15.04.2010
* Author: Martin Langowski
*
* This file is part of scia_retrieval_2d
*
* scia_retrieval_2d is free software: you can redistribute it or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 2.
* See accompanying COPYING.GPL2 file or http://www.gnu.org/licenses/gpl-2.0.html.
*/
#include<fstream>
#include<string>
#include<iostream>
#include <cstdlib>
#include<vector>
#include <stdexcept>
#include"Orbitliste.h"
using std::cerr;
using std::endl;
using std::string;
//*****************************************************************
int Orbitliste::Liste_Laden(string Dateiname)
{
std::ifstream infile(Dateiname.c_str());
if (!(infile.is_open())) {
std::cout << Dateiname << " kann nicht gefunden werden\n";
return -1;
}
while (!(infile.eof())) {
string Zeile;
getline(infile, Zeile);
m_Dateinamen.push_back(Zeile);
}
return 0;
} //ende Orbitliste::Liste_Laden
//*****************************************************************
//*****************************************************************
bool Orbitliste::Ist_Messung_Limbmessung(uint Index)
{
//zuerstmal prüfen ob m_Dateinamen[Index] überhaupt existiert
try {
string tmp = m_Dateinamen.at(Index);
} catch(std::out_of_range &err) {
cerr << "Achtung Zugriff auf nicht vorhandenes Listenelement in "
<< "Funktion Orbitliste::Ist_Messung_Limbmessung\n";
cerr << "Exception: " << err.what() << endl;
return false;
}
// charakteristische Zeichenkette suchen
size_t Stringindex = m_Dateinamen[Index].find("SCIA_limb");
// Überprüfen, ob Zeichenkette überhaupt vorhanden
if (Stringindex == std::string::npos) {
return false; //nicht gefunden
}
return true; //gefunden
}//ende Ist_Messung_Limbmessung
//*****************************************************************
//*****************************************************************
bool Orbitliste::Ist_Messung_Nadirmessung(uint Index)
{
//zuerstmal prüfen ob m_Dateinamen[Index] überhaupt existiert
try {
string tmp = m_Dateinamen.at(Index);
} catch(std::out_of_range &err) {
cerr << "Achtung Zugriff auf nicht vorhandenes Listenelement in "
<< "Funktion Orbitliste::Ist_Messung_Nadirmessung\n";
cerr << "Exception: " << err.what() << endl;
return false;
}
// charakteristische Zeichenkette suchen
size_t Stringindex = m_Dateinamen[Index].find("SCIA_nadir");
// Überprüfen, ob Zeichenkette überhaupt vorhanden
if (Stringindex == std::string::npos) {
return false;//nicht gefunden
}
return true; //gefunden
}//ende Ist_Messung_Nadirmessung
//*****************************************************************
//Wartungsfunktion ///////////////////////////////////////////////////////
void Orbitliste::In_Datei_Speichern(string Dateiname)
{
std::ofstream outfile(Dateiname.c_str());
//ich verzichte hier mal auf weitere sicherheitsfragen
for (unsigned int i = 0; i < this->m_Dateinamen.size(); i++) {
outfile << m_Dateinamen[i] << "\n";
}
}//Ende in_Datei_Speichern
////////////////////////////////////////////////////////////////////////////////