Der Satz von mir ging ja auch noch weiter ;-):
Zitat:Ansonsten für deinen Zeck: File öffnen --> Referenz benutzen für ein Write to Text file um den Header zu schreiben (dann macht der dir auch auch automatisch deine Zeilenenden nach jedem Write rein --> per Write to Binary File die eigentlichen Daten in das File schreiben --> File Referenz schließen.
Du scheinst das etwas misszuverstehen: Du schreibst nicht eine Textdatei mit Write to Text file bzw. eine Binärdatei mit Write to Binary, sondern du schreibst unter bestimmten Konventionen in eine Datei.
Die Funktionen dienen nur dazu dir zum Beispiel nach einer Zeile ein Zeilenende (Write to Text file) zu schreiben bzw. dir die Längen deiner Strukturen (zum Beispiel Anzahl der Array Elemente) vorranzustellen (Write to Binary). Der qualitative Unterschied dabei ist, dass du Write to Text file in der Regel nutzt um eine Art Nutzerausgabe zu machen (menschenlesbare Tabelle) und während Write to Binary für die Datenspeicherung zur weiteren Verarbeitung durch ein Programm verwendet wird. Entsprechend stellen die dir halt unterschiedliche Funktionen zur Verfügung (zum Beispiel ein Automatisches Daten serialisieren wenn du bei Write to Binary einen beliebigen Datentyp einhängst).
Grundsätzlich machen die aber wie gesagt auf der untersten Ebene nichts unterschiedliches. Beide Schreiben letztlich Zeichen in eine Datei.
Fakt ist jedenfalls: Durch die Konversion der Zeilenende Zeichen bei Write to Text file (Read from Text file) geht dir Information verloren. Praktisch gesehen: Jedes Zeichen in der Datei besteht aus 8 Bit, entsprechend hast du 256 verschiedene Zeichen zur Auswahl. Ein I32 wird dann zum Beispiel aus 4 Byte - also 4 Zeichen in deiner Datei - dargestellt. Wenn du jetzt 3 dieser Zeichen konvertierst wird bei jedem auftauchen eines dieser Zeichen beim Ausspeichern der gespeicherte Wert verändert und du lädst am Ende was anderes als du gespeichert hast.
Kurzbeispiel:
nehmen wir mal an das Zeichen für 1 wäre Zeilenende und das Zeichen für 255 wäre Zeilenvorschub. Dann wird beim Speichern eventuell noch Zeilenende geschrieben, beim lesen jedoch wird dann schon Zeilenvorschub gelesen (durch die Konvertierung). Entsprechend speicherst du zwar 1 aus, liest aber 255. Das könnte man als bei Zahlen nicht weiter tragisch ansehen. Wenn du aber bedenkst, dass du zum Beispiel ein Array ausspeicherst das 1 Element hat. Dann speichert der Zeilenende als Anzahl der Array Elemente. Anschließend kommt das eine Element. Liest du das wieder ein, liest er plötzlich 255 Elemente (und versucht die dann aus der Datei zu lesen; der wandelt dann also Daten komplett falsch um etc.) - was natürlich schiefgeht, da du keine 255 Elemente gespeichert hast.
Hoffe das ist jetzt klarer.