Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

C++

Filestream: Binary read/write

Testen Sie unsere 2017 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Nicht nur einzelne Variableninhalte lassen sich binär im Filesystem ablegen. Sie haben auch die Möglichkeit, ganze Objekte binär zu serialisieren. Dieses Beispiel zeigt das Prinzip der Verwendung von Binär-Streams.

Transkript

Da haben wir Texte rausgeschrieben einzelne Zahlenwerte auch mal Binärdaten, direkt interessant ist es natürlich auch ganze Datenstrukturen in Dateien zu schreiben möchte hier zum Beispiel ein kleines Spiel programmieren und den Highscore abspeichern die Spielernamen und so weiter da ist es manchmal ganz praktisch wenn mann direkt Binärdaten rausschreiben kan befehle dir ist mal ein bisschen was definiert eine kleine Spieler Datenstruktur mit einem identifier Highscore für den Spieler spielgeld einen Namen und hier entsprechend mal ein Player Max Player 4 Stück also 4 solche Plazer 2 dabai muss man wieder einlesen auch noch mal 4 Player dann brauche ich hier eine kleine Methode um die Daten zu setzen dass machen wir jetzt mal ganz einfach sitzen wir hier den Namen rein ich hier übergebe für alle Spieler das ist ja nur ein kleines Beispiel und zwar hier für den jeweiligen Index kann ich das dann kann ich das dann machen dass wird hier ab geprüft ob die Spiele auch valide sind und hier mache nichts daneben wie gesagt für alle Spieler Set Player 0123 Meier Hans Gertrud Susi definiere ich hier und jetzt geht's ans Eingemachte wollen natürlich die Daten jetzt hier mal raus schreiben und dazu öffne ich einen OutputStream output Filestream um genau zu sagen das hier werde ich gleich mal rauswerfen das brauchen wir nicht mehr und wenn ein wieder passiert ist melde ich das hier jetzt geht es also los ist eigentlich schreiben passiert jetzt hier am Anfang schreibe ich hier zum Beispiel ein Revision Code raus es ist immer ganz hilfreich wenn man sowas hat denn wen man später identifizieren kan und die Datei Struktur gleich geblieben ist man könnte auch sogenannte XML-Dateien rausschreiben es ist ein bisschen komplizierter da man den Vorteil dass wir nachher das relativ flexibel wieder einlesen kann aber so Revision Code braucht mann eigentlich immer und das ist ja eigentlich die schnellsten kompakteste Methode Daten rauszuschreiben und dazu verwenden wir den write befehl der write Befehl nimmt als Parameter einfach den Zeiger auf einen Datenblock das könnt jetzt trefft sein jetzt da einfache Strukturen short oder eben eine komplexe Datenstruktur wie unsere Struktur die wir hier weiter unten raus schreiben hier brauche ich aber noch mal ein short und zwar möchte ich natürlich die andere Spieler auch die Name rausschreiben damit ich später vielleicht sogar die Spiele mal erweitern kann so ruhig in der Datei gleich mit drin stehen deshalb schreibe ich hier Anzahl Player auch noch mit einem short raus das innerhalb 2 das write macht es ganz stur immer memory Pointer setzen und dann Anzhal und hier jetzt für alle Player von 0 bis max Player also 0 bis n -1 gehen wir hier aus hier ganz einfach den Player von i als Adresse const char Pointer wieder direkt auf den Speicherbereich zeigen und Size ausgeben User Struktur gibt mir der Länge dieses Blogs an dann könnte hier mit einem pramapack auch dafür sorgen das ist sehr kompakt abgelegt wird aber egal wie werden unter Umständen nicht verwendet mehr als für den short nötig aber das ist egal das ist zumindest kompatibel mit dem Size auf entscheidendes allerdings immer das mal auf einer anderen Plattform einlest kann es passieren dass es nicht kompatibel ist also da muss ein bisschen aufpassen ist auch der Nachteil von solarplattform abhängigen Datenstruktur das ist immer besser das oder Textdatei zu machen zum Beispiel XML und ist dann unabhängig auch von den Datenformaten die intern verwendet werden nun hier diesen aber zeigen wir das damit geht das besonders wie gesagt effizientes so der Klasse Weg wie mann das gemacht hat dann schreiben okay und jetzt war das ganze natürlich wieder einlesen eröffnen ist wichtig ist hier alt Binarys dass muss mann auch beim schreiben natürlich angeben dass haben wir hier oben auch schon gemacht immer ranscrollen die entsprechende Stelle hier binary weil sonst wird es nichts naher sonst wenn die Daten als Text interpretiert nun sehen wir je beim Lesen und mit lese Datenihr von treat kann ich genau umgekehrt wieder alles rein holen hier bis auf dich aufpassen dass die Größe wirklich genau übereinstimmen mit dem Speicherplatz den ich hier angebe Revison hat zwei Byte size of short berechne mir ganz brav entsprechend für Anzhal der Player und dann kann ich ja hier ganz brav auch prüfen ob diese revision in Ordnung ist wenn ich eine alte revisosn habe mache ich zum zum Beispiel nichts meinen Ohren kann ich vielleicht andere Daten einlesen und hier Anzahl Player panamax Player muss auch erfüllt sein könnte es sein dass ich eine Version hatte die mir Player zulässt oder eine gehackte Datei also wenn das erfüllt ist dann kann ich die Daten hier mit Read einfach in die entsprechende Datenstruktur von zwei einlesen mit Size of gameuser Struktur habe ich genau die richtige Anzahl der Bytes und dann gebe ich sie anschließend hier damals auf der Konsole aus dann sehn wir ob dass funktioniert hat schließen nicht vergessen und fertig aus und wir starten das mal hier ohne debug schauen was passiert habe ich ganz lieber schreiben hat geklappt revision 101 4 Spieler und hier kriege ich die Daten auch ganz brav wieder zurück.

C++

Machen Sie sich mit den einfachen Grundlagen zu C++ vertraut und lernen Sie anhand zahlreicher Übungs- und Codebeispiele die Klassenkonzepte, Prozeduren und Funktionen kennen.

9 Std. 3 min (143 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Video-Training auf DVD mit Bonusmagazin

+ Tutorial to go: Mit Videos für iPod, iPhone & Co.

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!