/* Beispiel: Dateibehandlung + Stringfunktionen
   Filename: main.cpp
   Author: Lahmer
   Title: Dateibehandlung
   Description: In diesem Beispiel lernen Sie das Schreiben und Lesen einer Datei in C++. Zusätzlich lernen Sie verschiedene Stringfunktionen kennen.
   Last Change: 14.02.2018
*/
 
#include <iostream>
#include <fstream>
 
using namespace std;
 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
 
 
int main(int argc, char** argv) {
 
 
	/*** IN DATEI SCHREIBEN ***/
	ofstream write;
 
	write.open("highscore.csv");
	if(write.is_open())
	{
		write << "********* HIGHSCORE *********\n";
		write << "Andreas;90;m\n";
		write << "Stefan;91;m\n";
		write << "Birgit;85;w\n";
		write << "Lukas;80;m\n";
		write.close(); 
	}
	else
	{
		cout << "Datei kann nicht geoeffnet werden!\n";
	}
 
 
	/*** VON DATEI LESEN ***/
	ifstream read;
	string line="";
	string name="";
	string punkte="";
	string geschlecht="";
	int counter=0;
 
 
	read.open("highscore.csv");
	if(read.is_open())
	{
		//getline liefert solange eine Zeile, bis man am Ende angelangt ist
		while(getline(read, line))
		{
			if(counter>0)
			{
				//Andreas;90;
				name=line.substr(0,line.find(';'));	//Andreas
				punkte=line.substr(line.find(';')+1,line.length());  //90;m;
				punkte=punkte.substr(0, punkte.find(';')); //90
				geschlecht=line.substr(line.length()-1, line.length()); 
				cout << name << "\t" << punkte << "\t" << geschlecht << endl; //Andreas 90 m
			}
			else {
				cout << "######## H I G H S C O R E ###########" << endl;
			}
			counter++;
		}
		read.close();
	}
	else
	{
		cout << "Datei kann nicht geoeffnet werden!\n";
	}
	return 0;
}