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 {
First, //f
Second, //b
First, //f Первый
Second, //b Второй
};
#endif // CDTEST_H

View File

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

View File

@@ -1,5 +1,6 @@
#include "cdutils_types.h"
#include "piconfig.h"
#include "pifile.h"
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) {
index_ = i;
name_ = n;
type_ = t;
value_s = v;
formula_ = f;
comment_ = c;
name_ = n.trimmed();
type_ = t.trimmed();
value_s = v.trimmed();
formula_ = f.trimmed();
comment_ = c.trimmed();
value_d = v.toDouble();
value_i = v.toInt();
value_b = v.toBool();
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]";
else l = "[" + prefix + ".k]";
l += "\n";
// piCout << l;
// piCout << l.dataUTF8();
// piCout << l.dataConsole();
// piCout << l.dataAscii();
d->write(l.toUTF8());
PIMap<int, CDType>::iterator i;
for (i = k.begin(); i != k.end(); ++i) {
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 << 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());
}
}
@@ -75,6 +95,10 @@ void CDSection::write(PIIODevice * d, const PIString & prefix) {
}
if (prefix.isEmpty()) {
l = "[]\n";
// piCout << l;
// piCout << l.dataUTF8();
// piCout << l.dataConsole();
// piCout << l.dataAscii();
d->write(l.toUTF8());
}
}
@@ -88,9 +112,9 @@ void CDSection::read(const void * ep) {
for (int i = 0; i < kl.childCount(); ++i) {
const PIConfig::Entry * ke(kl.child(i));
int kid = ke->name().toInt();
PIString n = ke->getValue("v").comment();
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);
// PIString n = ke->getValue("v").comment();
// PIString t = n.takeLeft(1);
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");
for (int i = 0; i < sl.childCount(); ++i) {

View File

@@ -23,7 +23,7 @@ public:
PIString type() const {return type_;}
PIString value() const {return value_s;}
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;}
int toInt() const {return value_i;}
bool toBool() const {return value_b;}

View File

@@ -19,6 +19,28 @@ class Core : public PIObject
void load() {
rf.open("k.dat", PIIODevice::ReadWrite);
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() {
@@ -92,10 +114,11 @@ int main(int argc, char *argv[]) {
screen.enableExitCapture('q');
//screen.start();
piCout << "start";
PIFile::setDefaultCharset("UTF-8");
Core core;
core.load();
core.test();
core.save();
K.send();