LadyMarion
Mitglied
Hallo,
ich möchte gerne folgendes machen:
Ich habe mehrere Dateien, die eingelesen werden sollen. Die Dateien enthalten Variablen, mit denen anschließend weiter gerechnet werden soll.
Dafür habe ich in der Klasse "test" eine allgemeine read-Funktion zur Verfügung, die alle Dateien einfach nur einliest, sowie eine find-Funktion, die mir anhand eines Schlüsselwortes den jeweiligen Wert zurückgibt.
Früher waren die read- und die find-Funktion in einer zusammengefasst, jetzt wollte ich die Funktionen aber aufteilen, so dass es nur noch eine einzige read-Funktion im ganzen Programm gibt und nur die find-Funktion je nach Datei anders aussieht.
In der main-Funktion rufe ich also folgende Funktionen auf:
Die read-Funktion könnte dann ja so aussehen:
In der find-Funktion werden später dann mehrere Fälle für die unterschiedlichen Dateien unterschieden, aber bis jetzt sieht es so aus:
Wie muss ich denn jetzt die beiden Funktionen "verknüpfen", dass es dann auch funktioniert? Denn bis jetzt weiß ja die find-Funktion nicht, wo sie eigentlich nach dem Schlüsselwort suchen soll...
Vielen Dank schon mal!
ich möchte gerne folgendes machen:
Ich habe mehrere Dateien, die eingelesen werden sollen. Die Dateien enthalten Variablen, mit denen anschließend weiter gerechnet werden soll.
Dafür habe ich in der Klasse "test" eine allgemeine read-Funktion zur Verfügung, die alle Dateien einfach nur einliest, sowie eine find-Funktion, die mir anhand eines Schlüsselwortes den jeweiligen Wert zurückgibt.
Früher waren die read- und die find-Funktion in einer zusammengefasst, jetzt wollte ich die Funktionen aber aufteilen, so dass es nur noch eine einzige read-Funktion im ganzen Programm gibt und nur die find-Funktion je nach Datei anders aussieht.
In der main-Funktion rufe ich also folgende Funktionen auf:
Code:
int main()
{
test frage;
frage.read("datei.txt");
frage.find("ABC");
return 0;
}
Die read-Funktion könnte dann ja so aussehen:
Code:
bool test::read(const string dateiname)
{
ifstream IN;
IN.open (dateiname.c_str());
if (IN.good())
{
string zeile;
while (getline(IN, zeile))
{
if (!zeile.empty())
{
return true;
}
}
}
else
{
cout<<"FEHLER\n";
return false;
}
IN.close();
}
In der find-Funktion werden später dann mehrere Fälle für die unterschiedlichen Dateien unterschieden, aber bis jetzt sieht es so aus:
Code:
const double test::find(const string& schluesselwort) const
{
string zeile;
double wert;
if (zeile.find(schluesselwort) != string::npos)
{
// hier wird dann die entsprechende Zeile zerlegt und der Wert herausgeschrieben
return wert;
}
}
Vielen Dank schon mal!