eigene Dateitypen erstellen.
-
Hallo!
Gibt es eine Möglichkeit zu programmieren, dass das Programm Daten in eine Datei speichet. Vielleicht Variablen oder Klasseninstanzen.
Fast alle Programme haben einen eigenen Dateityp und wenn man sie benutzt, kann man diesen Dateityp erstellen. (z.B. speichert man Word, kann man eine Word-Datei erstellen). Kann man das auch bei seinem eigenen Programm?
Ich denke zunächst an einen viel kleineren Rahmen, z.B., dass zehn Klasseninstanzen und zwei oder drei Variablen in die Datei abgespeichert werden.
Kennt sich jemand damit aus?
-
Naja du öffnest eine Datei und schreibst Daten rein.
Ich mach für meine Datendatein einen Header, da kannst du dann Versionsnummer ablegen, wenn sich mal dein Datenformat ändert. Dann einen Daten Teil, da speicherst du dann die relevanten Information ab. Damit die Datei von deine Programm wieder einlesbar ist könntest du sowas machen <FELD1>deine Daten</FELD1>. Eine weitere Möglichkeit ist, dass deine Daten im Programm in einer Struktur gespeichert sind und du einfach nur die Struktur in eine Datei dumpst und gleiches wieder zurück beim einlesen. Diese Ausführung ist aber Meiner meinung nach nicht sonderlich gut, da eine Änderung an der Struktur eine ältere Datei inkompatibel machen.
-
Vielen Dank für Deine Antwort
Ich weiß leider nicht, wie man mit seinem Programm eine Datei öffnet. Natürlich weiß ich schon, wie man durch Anklicken der Datei die Datei öffnet, aber innerhalb eines Programms habe ich noch nie eine Datei geöffnet.
Header-Dateien habe ich bis jetzt nur zum Verbinden von cpp und rc Dateien benutzt, nicht aber um einen eigenen Dateityp zu erstellen.
Leider habe ich auch <Feld1> </Feld1> nicht verstanden.
-
Blauwaal schrieb:
Vielen Dank für Deine Antwort
Ich weiß leider nicht, wie man mit seinem Programm eine Datei öffnet. Natürlich weiß ich schon, wie man durch Anklicken der Datei die Datei öffnet, aber innerhalb eines Programms habe ich noch nie eine Datei geöffnet.also man öffnet eine Datei mit der Funktion CreateFile, zum Lesen und Schreiben nimmt man ReadFile und WriteFile und zum Schließen nimmt man CloseHandle. Die jeweiligen Beschreibungen findest du, indem du die Namen in eine Suchmaschine deiner Wahl eingibst und dann nach Ergebnissen von msdn.com (und mit der Überschrift z.B. "CreateFile (function)") suchst.
Damit kannst du dann Daten byteweise in Dateien schreiben.Header-Dateien habe ich bis jetzt nur zum Verbinden von cpp und rc Dateien benutzt, nicht aber um einen eigenen Dateityp zu erstellen.
in Header schreibt man normalerweise Definitionen von Datenstrukturen. Wenn du die Daten dann in Dateien schreiben willst, übergibst du das 1. Element an WriteFile, dann das 2., das 3. usw. und zum Einlesen übergibst du das 1. Element an ReadFile, dann das 2. usw.
Leider habe ich auch <Feld1> </Feld1> nicht verstanden.
damit ist gemeint, dass du vor die jeweiligen Daten <Feld1> in die Datei schreibst, damit dein Programm weiß, dass es jetzt Daten für das Objekt "Feld1" bekommt, und hinter die Daten </Feld1> schreibst, damit das Programm weiß, dass alle Daten für das Objekt Feld1" eingelesen sind.
-
Blauwaal schrieb:
Natürlich weiß ich schon, wie man durch Anklicken der Datei die Datei öffnet
Das ist doch schon mal ein Anfang
-
Danke für die Erläuterungen. Jetzt habe ich erst mal Material, mit dem ich weiterarbeiten kann. Ich hoffe, es klappt.
-
Ahhhh ... Du programmierst doch C++, oder?
Dann nimm bitte die IO-Streams zum Datei schreiben/lesen, und nicht CreateFile.zum Schreiben zum Beispiel:
http://www.cplusplus.com/reference/fstream/ofstream/
-
Stichwort: File Extension
...für anfang:
https://msdn.microsoft.com/en-us/library/windows/desktop/hh127427(v=vs.85).aspx
https://stackoverflow.com/questions/10163082/custom-file-extension-in-c