#include "pip.h" #include "pibinarystream.h" #include "pitextstream.h" #include "piiostream.h" //#include "stream.h" //#include "ccm.h" //#include "pisystemmonitor_.h" using namespace PICoutManipulators; class File: public PIBinaryStream { public: PIFile file; bool binaryStreamAppendImp(const void * d, size_t s) { file.write(d, s); return true; } bool binaryStreamTakeImp(void * d, size_t s) { if (file.isEnd()) return false; file.read(d, s); return true; } }; struct TS { TS(int v0 = -1, float v1 = -1, PIString v2 = "") {i = v0; f = v1;/* s = v2;*/} int i; float f; //PIString s; }; PICout operator << (PICout c, const TS & v) {c << '{' << v.i << ", " << v.f << '}'; return c;} template inline PIBinaryStream

& operator <<(PIBinaryStream

& s, const TS & v) {s << v.i; return s;} template inline PIBinaryStream

& operator >>(PIBinaryStream

& s, TS & v) {s >> v.i; return s;} int main(int argc, char * argv[]) { PIFile f; f.open("_test.h", PIIODevice::ReadOnly); PIIOTextStream ts(&f); ts.setEncoding(PIIOTextStream::System); while (!ts.isEnd()) { PIString v; ts >> v; piCout << v; //piCout << ts.takeCWord(); } /*PIByteArray ba; PIIOByteArray ioba(&ba); //PIIOBinaryStream stream(&ioba); PISystemMonitor::ProcessStatsFixed ps; ba << PIByteArray::RawData("123", 3); piCout << "s" << ba;*/ //File f; //f.file.open("_", PIIODevice::ReadWrite); //f.file.clear(); //PIVector vi({TS(1,20), TS(3,40)}); /*PIVector vi({{'a', 10}, {'b', 20}, {'c', 30}}); ba << vi; ba.binaryStreamAppend(&ba, sizeof(ba)); piCout << "src" << vi; piCout << "s" << ba.data; vi.fill(TS()); vi.clear(); //f.file.seekToBegin(); ba >> vi; piCout << "res" << vi; piCout << "r" << ba.data;*/ /*PIMap map; map[PIIODevice::ReadOnly] = {"str0", PIString::fromUTF8("русский!")}; piMSleep(100); map[PIIODevice::ReadWrite] = {""}; piMSleep(100); map[PIIODevice::WriteOnly] = {PIString::fromUTF8("русский!"), "", "1234567890", "qwertyuiop[]"}; piCout << map; stream << map; piCout << ba; map.clear(); ioba.seekToBegin(); stream >> map; piCout << map; piCout << ba;*/ return 0; }