diff --git a/KelvinDashboardService/DapChainHistoryHandler.cpp b/KelvinDashboardService/DapChainHistoryHandler.cpp index 542a1d827947bbde99ef8c662ed7485e9ac332b7..a499b95e7588d80e7ccbc15c05bc94b13bccc18f 100644 --- a/KelvinDashboardService/DapChainHistoryHandler.cpp +++ b/KelvinDashboardService/DapChainHistoryHandler.cpp @@ -48,7 +48,7 @@ void DapChainHistoryHandler::onRequestNewHistory(const QMap<QString, QVariant>& while ((pos = rx.indexIn(result, pos)) != -1) { QStringList dataItem = QStringList() << rx.cap(1) << QString::number(DapTransactionStatusConvertor::getStatusByShort(rx.cap(2))) << rx.cap(3) << rx.cap(4) << rx.cap(5) << wallets.at(i).toString(); - qDebug() << "NEW MATCH" << pos << dataItem; +// qDebug() << "NEW MATCH" << pos << dataItem; data << dataItem; pos += rx.matchedLength(); } diff --git a/KelvinDashboardService/DapChainWalletHandler.cpp b/KelvinDashboardService/DapChainWalletHandler.cpp index 121cb0e0e114d06d1addda8f1048bf10e565d832..3651e53ee65cb7ac6e8ee14702e76ab161573649 100755 --- a/KelvinDashboardService/DapChainWalletHandler.cpp +++ b/KelvinDashboardService/DapChainWalletHandler.cpp @@ -43,7 +43,7 @@ QMap<QString, QVariant> DapChainWalletHandler::getWallets() process.start(QString("%1 wallet list").arg(CLI_PATH)); process.waitForFinished(-1); QString str = QString::fromLatin1(process.readAll()); - qDebug() << "ZDES`" << str; +// qDebug() << "ZDES`" << str; QRegExp rx(":{1,1}([\\s\\w\\W]+)(\\n|\\r){1,1}" ); rx.setMinimal(true); int pos = 0; @@ -72,51 +72,63 @@ QStringList DapChainWalletHandler::getWalletInfo(const QString &asNameWallet) QProcess process; process.start(QString("%1 wallet info -w %2 -net private").arg(CLI_PATH).arg(asNameWallet)); process.waitForFinished(-1); - char* response = process.readAll().data(); - //qDebug() << response; + QByteArray result = process.readAll(); + QRegExp rx("wallet: (\\w+)\\s+addr:\\s+(\\w+)\\s+(balance)|(\\d+.\\d+)\\s(\\(\\d+\\))\\s(\\w+)"); QStringList list; -#ifdef Q_OS_WIN32 - char *context = nullptr; - char *data = nullptr; - data = strtok_r(response, ":", &context); - if (strcmp(data, "wallet") != 0) { - data = strtok_r(response, ":", &context); - } - data = strtok_r(context+1, "\r", &context); - list.append(QString(data)); - data = strtok_r(context+1, ":", &context); - data = strtok_r(context+1, "\r", &context); - list.append(QString(data)); - data = strtok_r(context+1, ":", &context); - list.append(QString(data)); - data = strtok_r(context+4, "\r", &context); - - char *subctx; - char *subdata; - if (strlen(data) > 2) { - subdata = strtok_r(data+1, " ", &subctx); - } else { - subdata = strtok_r(data, " ", &subctx); - } - list.append(QString(subdata)); - subdata = strtok_r(subctx, " ", &subctx); - list.append(QString(subdata)); - subdata = strtok_r(subctx, "\r", &subctx); - list.append(QString(subdata)); -#else - QString str = QString::fromLatin1(process.readAll()).replace("\\", "\\\\"); - - QRegExp rx("[(:\\)\\t]{1,1}([^\\\\\\n\\t]+)[\\\\(|\\n|\\r]{1,1}"); - rx.setMinimal(true); - int pos{0}; - while((pos = rx.indexIn(str, pos)) != -1) + int pos = 0; + while((pos = rx.indexIn(result, pos)) != -1) { - list.append(rx.cap(1)); + if(rx.cap(1).isEmpty()) list << rx.cap(4) << rx.cap(5) << rx.cap(6); + else list << rx.cap(1) << rx.cap(2) << rx.cap(3); pos += rx.matchedLength(); } -#endif - qDebug() << list; + +// char* response = process.readAll().data(); +// //qDebug() << response; +// QStringList list; +//#ifdef Q_OS_WIN32 +// char *context = nullptr; +// char *data = nullptr; +// data = strtok_r(response, ":", &context); +// if (strcmp(data, "wallet") != 0) { +// data = strtok_r(response, ":", &context); +// } +// data = strtok_r(context+1, "\r", &context); +// list.append(QString(data)); +// data = strtok_r(context+1, ":", &context); +// data = strtok_r(context+1, "\r", &context); +// list.append(QString(data)); +// data = strtok_r(context+1, ":", &context); +// list.append(QString(data)); +// data = strtok_r(context+4, "\r", &context); + +// char *subctx; +// char *subdata; +// if (strlen(data) > 2) { +// subdata = strtok_r(data+1, " ", &subctx); +// } else { +// subdata = strtok_r(data, " ", &subctx); +// } +// list.append(QString(subdata)); +// subdata = strtok_r(subctx, " ", &subctx); +// list.append(QString(subdata)); +// subdata = strtok_r(subctx, "\r", &subctx); +// list.append(QString(subdata)); +//#else +// QString str = QString::fromLatin1(process.readAll()).replace("\\", "\\\\"); + +// QRegExp rx("[(:\\)\\t]{1,1}([^\\\\\\n\\t]+)[\\\\(|\\n|\\r]{1,1}"); +// rx.setMinimal(true); + +// int pos{0}; +// while((pos = rx.indexIn(str, pos)) != -1) +// { +// list.append(rx.cap(1)); +// pos += rx.matchedLength(); +// } +//#endif +// qDebug() << list; return list; }