Text Read Write in CPP
Lesen und Schreiben von Text Files mit C++
Man muss oft kleine Files lesen und schreiben. Z.B. XML, Konfigurationen, Scripte usw.
Das kann mit C++ auf eine Zeile reduziert werden.
#include "rList.h" list<string> text; text = tReadAscii().( "filenameIn" ); count = tWriteAscii()(text,"filenameOut");
oder
#include "rList.h" string textAsString; textAsString = tReadAscii().to_string("filenameIn");
Weitere Beispiele sind in main.cpp.
Der Text ist ein Container vom Typ std::list<std::string>. Beim Lesen wird eine Kopie der Liste zurückgegeben, beim Schreiben wird eine const Referenz der Liste benötigt.
Mit to_string( const std::string& file ) kann 'on the fly' eine Konvertierung nach std::string erfolgen.
Das gleiche Verfahren ist auch für binary Files implementiert. In diesem Fall sind die Daten in einem Container von Typ std::vector<uint8_t>
Das Lesen erfolgt in operator() und nicht im Konstruktor. Dort wird auch die Exception geworfen, wenn etwas schief geht.
Download: github: asciireadwrite2
Lizenz der Files
LGPL: GNU Lesser General Public License
Files
Der Projektfile für Qt-Creator:
asciireadwrite2.pro
Testfile und Testprogramm:
- readascii.txt
- main.cpp
Implementierung:
- rList.h
- wList.h
- rBin.h
- wBin.h
Exceptions:
class text_read::BadAsciiRead: public std::runtime_error class text_write::BadAsciiWrite: public std::runtime_error class bin_read::BadBinRead: public std::runtime_error class bin_write::BadBinWrite: public std::runtime_error
Compiler
Es wird Standard C++ mit Boost eingesetzt, daher ist der Code von allen modernen C++ Compilern übersetzbar.
Boost Filesystem Library