punktuelles Auslesen einer Datei
-
Hallo!
Ja, sicher, es gibt wahrscheinlich tausende Threads und Google-Einträge zu dem Thema, aber ich bin nun mal relativer Neueinsteiger in die Programmierwelt und bin schlicht überfordert mit den Erklärungen, die da manchmal abgegeben werden. Das gilt auch für die C++Referenzen. Ich kann nur schwerlich was mit den Beispielcodes anfangen, da die meist sehr abstrakt sind. So... das reicht an Rechtfertigungen
Mein langfristiges Ziel ist, hobbyweise einen kleinen Fussballmanager zu programmieren. Derzeitiges Arbeitsfeld: Das Programm soll aus einer txt-Datei mit dem beispielhaften InhaltTeam 1:
TW1 Name, Vorname, Spielstärke, bool
TW2 Name, Vorname, Spielstärke, bool
A1 Name, Vorname, Spielstärke, bool
A2 Name, Vorname, Spielstärke, bool
...die für die jeweilige Spielposition stärksten Spieler heraussuchen (Vergleich von "Spielstärke" der Spieler mit gleicher Position, also TW, A, etc.), es sei denn, bool=1 (Spieler ist verhindert) und daraus dann die Aufstellung der Mannschaft basteln. Wie sag' ich dem Programm denn, dass es in der Datei dort lesen soll, wo zum Beispiel die Spielstärke des TW2 liegt?
Danke für die Hilfe!

-
da bietet es sich an eine binäre datei anzulegen
// Zuerst eine Struktur anlegen die dann (auch mehrfach) in die datei geschrieben // werden kann struct Team { bool verfuegbar; int a; // ... }; struct Team tm; // Struktur befüllen ofstream f("spieler.dat", ios::write | ios::binary); f.write(&tm, sizeof(struct Team)); f.close(); // ... ifstream i("spieler.dat", ios::read | ios::binary); i.read(&tm, sizeof(struct Team)); i.close();
-
ich würde auf das binär verzichten - schafft dir nur probleme...
was ist, wenn du iwann mal nen update hast und was am highscore verändern möchtest? richtig - ewig viel gefrickel...
was, wenn du auf einmal nen anderen compiler verwenden willst?
richtig - du kannst die highscoredatei vergessen...
speicher es halt in klartext ab und verschlüssel es iwie mit nem einfachen xor und hau evtl noch nen hash iwo in die datei rein...bb
-
unskilled schrieb:
speicher es halt in klartext ab und verschlüssel es iwie mit nem einfachen xor und hau evtl noch nen hash iwo in die datei rein...bb
Wat?
Dachte, ich hätte erwähnt, dass ich eigentlich nur die grundlegendsten Grundlagen von C++ kenne. Wäre super, wenn du das nochmal ein wenig erklären könntest.
-
ich kann in dem beitrag kein schlagkräftiges argument finden, versuchs einfach so das funktioniert
-
huch - ich dachte, es geht um ne highscore tabelle - also erschien mein letzter post vll etwas verwirrt

so in etwa:
enum position { tw, ab, mf, st }; struct spieler { int pkt; int spielstaerke; std::string name; position posi; //... }; std::ostream& operator<< (std::ostream &s, const spieler &these) { s << these.pkt << ' ' << these.spielstaerke << //usw. std::string tmp; s << tmp; if(tmp == "TW") these.posi = tw; return s << std::endl; } std::istream& operator>> (std::istream &s, spieler &these) { s >> these.pkt >> these.spielstaerke << //usw. return s; }int main() { highscore x; std::ifstream load("highscore.dat"); load >> x; if(x.posi == tw) { ; } }so sollte das vorerst reichen, denke ich...
später kannst du dann immernoch ne verschlüsselung o.ä. einbauen
allerdings wirst du hier auch wieder das meiste nicht verstehen - dazu fehlt es dir einfach an den grundkenntnissen, wie es aussieht - die brauchst du aber...machs gut und viel erfolg noch ;o)
player schrieb:
...
ok, dann mach es so, wie player sagt, wenn du das hier nicht verstehst...