Text Datei einlesen und auswerten
-
Hallo,
ich habe folgendes Problem:
Ich habe eine .txt Datei erstellt und es mit daten ausgefüllt wie z.b.max,mustermann
bla,delikanli
jan,bobby
...
...
usw.was ich jetzt machen will ist: Die einzelnen namen zu lesen und mit ihnen arbeiten. Und natürlich dass als eine Schleife: z.B. namen die "max" heißen suchen. Wie kann ich bis zum komma einlesen? Woher kann ich abgreifen, dass keine Einträge mehr gibt.
Hier mein bisheriger Code:#include <iostream> #include <fstream> #include <string> using namespace std; #include "E_WahlenDienst.h" #include "E_WahlenRechner.h" void main(){ //**************************************************************** // fstream damit die Datei zuerst schreibend und dann lesend geöffnet werden kann. fstream File("wahlendatenbank.txt", ios::out); if (File.is_open()) { string tempOrt; string tempPartei; // Nur zwei Datensätze schreiben. // Hier wäre eine Fehlerprüfung angebracht for (int i = 0; i < 3 ; ++i) { E_WahlenDienst waehler; cout << "Ort: "; cin >> tempOrt; waehler.setOrt(tempOrt); cout << "Partei: "; cin >> tempPartei; waehler.setPartei(tempPartei); // Aktuelle Person in der Datei speichern. //File.write((const char*)&Pers, sizeof(Pers)); File << waehler.getOrt(); File << ","; File << waehler.getPartei(); File << endl; } File.close(); // Datei schließen } //**************************************************************************** // Datei zum Lesen öffnen. File.open("wahlendatenbank.txt", ios::in); if (File.is_open()) { E_WahlenDienst waehler; for (int i = 0; i < 3 ; ++i) { } } }
-
Hallo
Du kannst die Datei solange einlesen bis
File.eofIch würde per getline einlesen und dann den string beim Komma trennen.
chrische
-
Also ich weiss nicht welche übergabeparameter diese getline braucht.
Hier mein bisheriger nicht funktionerender Code:
// Datei zum Lesen öffnen. File.open("wahlendatenbank.txt", ios::in); if (File.is_open()) { int i=0; string temp; while(File.eof()) { temp = File.getline(); i=i+1; } cout << i; File.close(); // Datei schließen }Wie kann ich die Zeile einlesen? Und auf die untere Zeile springen?
-
Hallo
Ich glaube so:
getline(File, temp);chrische
-
Hallo. Wie bekomme ich die zweite Zeile in den String rein
Hier mein Code
// Datei zum Lesen öffnen. File.open("wahlendatenbank.txt", ios::in); if (File.is_open()) { int i=0; string temp; while(File.eof()) { getline(File,temp); i=i+1; } cout << i; File.close(); // Datei schließen }
-
Hallo du könntest es mal so probieren
dies sollte funktionieren
if (File.is_open()){ std::string line; while (getline(File, line)){ int pos = line.find(",", 0); std::string first, second; first = line.substr(0,pos); second = line.substr(pos+1, line.length()-pos+1); } }mfg Gast_
-
Hey, das mit der Trennung von der Zeile hat funktioniert. Danke.
Noch eine Frage:
Switch- case:switch(sPartei) { case PD1: iPD1++ ;break; case PD2: iPD2++ ;break; case PD3: iPD3++ ;break; default : ; };Hier ist sPartei eine string und wie kann ich im case prüfen, ob das String
PD1 ist oder muss ich es mit if-Anweisungen und strcompare machen?
Kann mir jemand hier weiterhelfen. Danke
-
switch arbeitet nicht mit Strings.
Mach's also mit ifs.