[VC++] Floatwerte zeilenweise in Datei schreiben und auslesen

jenslorr

Grünschnabel
Hallo.

Ich möchte verschiedene float-Werte aus einer Matrix in eine Datei schreiben. Das ganze soll zeilenweise geschehen (der Übersichtlichkeit).
Um das ganze dann auch wieder verarbeiten zu können, möchte ich das ganze auch wieder einlesen können.

Mit einem einzelnen String ist mir das nun auch gelungen, aber ich komme nicht mit mehreren Werten zurecht - sowohl beim schreiben als auch beim lesen. Wie realisiere ich den Zeilenumbruch beim schreiben und mit welcher Funktion kann ich wieder zeilenweise einlesen? Gibt es für floats eigene Befehle oder ist es besser sie zu Strings zu konvertieren?

Danke für Anregungen, Hilfe oder Code, der Jensen...
 
Zum zeilenweisen Schreiben/Lesen von Textdateien kannst du z.B. die MFC-Klasse "CStdioFile" (WriteString, ReadString) oder "fstream" aus der STL verwenden. Einen Zeilenbruch schreibt man als String "\r\n" (Carrige Return, Line Feed). Bei der WriteString()-Methode von CStdioFile reicht ein "\n", das dann automatisch erweitert wird.

Die Verwendung von Textdateien macht die ganze Sache natürlich übersichtlicher, da man in diese einfacher hineinschauen bzw. diese ggf. editieren kann. Das bedeutet auch, dass die float-Werte konvertiert werden müssen.

Die Alternative wäre eine Binär-Datei (dann "CFile" verwenden), bei der die Bytes des float direkt gespeichert werden. Dann erübrigt sich auch die Problematik des Zeilenumbruchs, da floats eine feste Größe haben (immer 4 Bytes lang) und daher hintereinanderweg geschrieben werden können. Beim Einlesen muss man dann den gelesenen Buffer in 4-Byte-Häppchen aufteilen und diese dann jeweile in eine float-Variable packen.

Code sollten sich über sie Suchfunktion zur Genüge finden lassen. Dateien lesen/schreiben ist ein eher weniger seltenes Thema :)

Gruß
MCoder
 

Neue Beiträge

Zurück