git-svn-id: svn://db.shs.com.ru/libs@113 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2016-08-10 11:13:43 +00:00
parent f24b7172b7
commit 8052406e54
5 changed files with 66 additions and 17 deletions

View File

@@ -3,8 +3,8 @@
enum KDescription { enum KDescription {
First, //f First, //f Первый
Second, //b Second, //b Второй
}; };
#endif // CDTEST_H #endif // CDTEST_H

View File

@@ -151,12 +151,14 @@ void CDCore::K_Send() {
PIString s; PIString s;
PIIOString ios(&s); PIIOString ios(&s);
k_write(&ios); k_write(&ios);
ios.close(); // ios.close();
piCout << s;
//PIByteArray ba = PIByteArray::fromString(s); //PIByteArray ba = PIByteArray::fromString(s);
PIFile pf("k.txt", PIIODevice::ReadWrite); PIFile pf("k.txt", PIIODevice::ReadWrite);
pf.write(s.toUTF8()); pf.resize(0);
pf.write(s.dataAscii(), s.lengthAscii());
//k_write(&pf); //k_write(&pf);
piCout << pf.readLine(); //piCout << pf.readLine();
} }

View File

@@ -1,5 +1,6 @@
#include "cdutils_types.h" #include "cdutils_types.h"
#include "piconfig.h" #include "piconfig.h"
#include "pifile.h"
using namespace CDUtils; using namespace CDUtils;
@@ -15,15 +16,20 @@ CDType::CDType() {
CDType::CDType(int i, const PIString & n, const PIString & t, const PIString & v, const PIString & f, const PIString & c, cdT cd_t) { CDType::CDType(int i, const PIString & n, const PIString & t, const PIString & v, const PIString & f, const PIString & c, cdT cd_t) {
index_ = i; index_ = i;
name_ = n; name_ = n.trimmed();
type_ = t; type_ = t.trimmed();
value_s = v; value_s = v.trimmed();
formula_ = f; formula_ = f.trimmed();
comment_ = c; comment_ = c.trimmed();
value_d = v.toDouble(); value_d = v.toDouble();
value_i = v.toInt(); value_i = v.toInt();
value_b = v.toBool(); value_b = v.toBool();
cd_type_ = cd_t; cd_type_ = cd_t;
// piCout << type_.size() << type_.toUTF8();
// piCout << formula_.size() << formula_.toUTF8();
// piCout << comment_.size() << comment_.toUTF8();
piCout << "[CDType]" << index_ << ":" << name_ << ":" << type_ << ":" << value_s << ":" << value_d << ":" << formula_ << ":" << comment_ << ":" << (cd_type_ == cdK);
piCout << "[CDType]" << index_ << ":" << name_ << ":" << type_ << ":" << value_s << ":" << value_d << ":" << formula_ << ":" << comment() << ":" << (cd_type_ == cdK);
} }
@@ -55,13 +61,27 @@ void CDSection::write(PIIODevice * d, const PIString & prefix) {
if (prefix.isEmpty()) l = "[k]"; if (prefix.isEmpty()) l = "[k]";
else l = "[" + prefix + ".k]"; else l = "[" + prefix + ".k]";
l += "\n"; l += "\n";
// piCout << l;
// piCout << l.dataUTF8();
// piCout << l.dataConsole();
// piCout << l.dataAscii();
d->write(l.toUTF8()); d->write(l.toUTF8());
PIMap<int, CDType>::iterator i; PIMap<int, CDType>::iterator i;
for (i = k.begin(); i != k.end(); ++i) { for (i = k.begin(); i != k.end(); ++i) {
CDType & ck(i.value()); CDType & ck(i.value());
//l.clear();
l = PIString::fromNumber(ck.index()) + ".f = " + ck.formula() + " #s " + ck.comment() + " \n";
// piCout << l << ck.comment().size();
// piCout << l.dataUTF8();
// piCout << l.dataConsole();
// piCout << l.dataAscii();
d->write(l.toUTF8());
l.clear(); l.clear();
l << ck.index() << ".f = " << ck.formula() << " #s " << ck.comment() << "\n"; l << ck.index() << ".v = " << ck.value() << " #" << ck.type() << " " << ck.name() << " \n";
l << ck.index() << ".v = " << ck.value() << " #" << ck.type() << " " << ck.name() << "\n"; // piCout << l;
// piCout << l.dataUTF8();
// piCout << l.dataConsole();
// piCout << l.dataAscii();
d->write(l.toUTF8()); d->write(l.toUTF8());
} }
} }
@@ -75,6 +95,10 @@ void CDSection::write(PIIODevice * d, const PIString & prefix) {
} }
if (prefix.isEmpty()) { if (prefix.isEmpty()) {
l = "[]\n"; l = "[]\n";
// piCout << l;
// piCout << l.dataUTF8();
// piCout << l.dataConsole();
// piCout << l.dataAscii();
d->write(l.toUTF8()); d->write(l.toUTF8());
} }
} }
@@ -88,9 +112,9 @@ void CDSection::read(const void * ep) {
for (int i = 0; i < kl.childCount(); ++i) { for (int i = 0; i < kl.childCount(); ++i) {
const PIConfig::Entry * ke(kl.child(i)); const PIConfig::Entry * ke(kl.child(i));
int kid = ke->name().toInt(); int kid = ke->name().toInt();
PIString n = ke->getValue("v").comment(); // PIString n = ke->getValue("v").comment();
PIString t = n.takeLeft(1); // PIString t = n.takeLeft(1);
k[kid] = CDType(kid, n.trim(), t, ke->getValue("v").value(), ke->getValue("f").value(), ke->getValue("f").comment(), CDType::cdK); k[kid] = CDType(kid, ke->getValue("v").comment(), ke->getValue("v").type(), ke->getValue("v").value(), ke->getValue("f").value(), ke->getValue("f").comment(), CDType::cdK);
} }
PIConfig::Entry & sl = e.getValue("s"); PIConfig::Entry & sl = e.getValue("s");
for (int i = 0; i < sl.childCount(); ++i) { for (int i = 0; i < sl.childCount(); ++i) {

View File

@@ -23,7 +23,7 @@ public:
PIString type() const {return type_;} PIString type() const {return type_;}
PIString value() const {return value_s;} PIString value() const {return value_s;}
PIString formula() const {return formula_;} PIString formula() const {return formula_;}
PIString comment() const {return comment_;} PIString comment() const {piCout << "[CDType]" << name_ << comment_.size(); return comment_;}
double toDouble() const {return value_d;} double toDouble() const {return value_d;}
int toInt() const {return value_i;} int toInt() const {return value_i;}
bool toBool() const {return value_b;} bool toBool() const {return value_b;}

View File

@@ -19,6 +19,28 @@ class Core : public PIObject
void load() { void load() {
rf.open("k.dat", PIIODevice::ReadWrite); rf.open("k.dat", PIIODevice::ReadWrite);
K.read(&rf); K.read(&rf);
rf.close();
}
void save() {
rf.open("k_out.txt", PIIODevice::ReadWrite);
rf.resize(0);
K.write(&rf);
rf.close();
// rf.open("k_out.txt", PIIODevice::ReadWrite);
// K.read(&rf);
// rf.close();
// rf.open("k_out2.txt", PIIODevice::ReadWrite);
// rf.resize(0);
// K.write(&rf);
// rf.close();
// rf.open("k_out2.txt", PIIODevice::ReadWrite);
// K.read(&rf);
// rf.close();
// rf.open("k_out3.txt", PIIODevice::ReadWrite);
// rf.resize(0);
// K.write(&rf);
// rf.close();
} }
void test() { void test() {
@@ -92,10 +114,11 @@ int main(int argc, char *argv[]) {
screen.enableExitCapture('q'); screen.enableExitCapture('q');
//screen.start(); //screen.start();
piCout << "start"; piCout << "start";
PIFile::setDefaultCharset("UTF-8");
Core core; Core core;
core.load(); core.load();
core.test(); core.test();
core.save();
K.send(); K.send();