Показать сообщение отдельно
Старый 13.09.2023, 09:35   #4
Mitzzz
Пользователь
 
Регистрация: 27.05.2009
Сообщений: 17
По умолчанию

Формирование XML-файла (Градуировка):

Код:
bool XmlMainClass::WriteAllFile(int type)
{
    QIODevice::OpenMode modeFile = QFile::WriteOnly | QFile::Text;
    xmlFile = new QFile(xmlFileName);
    if(!xmlFile->open(modeFile))
    {
        delete xmlFile;
        isFileOpened = false;
        return false;
    }

    OneCalibration oc;
    OneTemperature ot;

    writer = new QXmlStreamWriter(xmlFile);
    writer->setAutoFormatting(true);
    writer->writeStartDocument();
    writer->writeStartElement("data");
    writer->writeTextElement("PIP_Number", pip_Num);
    writer->writeTextElement("VIP_Number", vip_Num);
    writer->writeStartElement("Calibration");
    if (type==0) writer->writeTextElement("C_Date", QDateTime::currentDateTime().toString("dd.MM.yyyy hh:mm"));
    else  writer->writeTextElement("C_Date", calibDate);
    for(int i = 0; i < 21; i++)
    {
        oc = calib->at(i);
        oc.WriteOneCalibration(writer);
    }
    writer->writeEndElement();
    writer->writeStartElement("Temperature");
    for(int i = 0; i < 6; i++)
    {
        ot = temper->at(i);
        ot.WriteOneTemperature(writer);
    }
    writer->writeEndElement();
    writer->writeEndElement();
    xmlFile->close();
    delete xmlFile;
    isFileOpened = true;
    return true;
}




Код:
XmlMainClass::XmlMainClass(QString fileName, QList<OneCalibration> calibList, QString pip, QString vip)
{
    xmlFileName = fileName;
    pip_Num = pip;
    vip_Num = vip;
    QDir dir;
    dir.setPath(xmlFileName);
    if(!dir.exists(xmlFileName))
    {
        CreateNewDataStruct();
        WriteAllFile(0);
    }
    ReadAllFile();
    OneCalibration oc;
    for(int i = 0; i < 21; i++)
    {
        oc = calibList.at(i);
        if(!oc.IsEmpty())
            calib->replace(i, oc);
    }
}




Формирование XML-файла (Температурная настройка):

Код:
bool XmlMainClass::WriteAllFile(int type)
{
    QIODevice::OpenMode modeFile = QFile::WriteOnly | QFile::Text;
    xmlFile = new QFile(xmlFileName);
    if(!xmlFile->open(modeFile))
    {
        delete xmlFile;
        isFileOpened = false;
        return false;
    }

    OneCalibration oc;
    OneTemperature ot;

    writer = new QXmlStreamWriter(xmlFile);
    writer->setAutoFormatting(true);
    writer->writeStartDocument();
    writer->writeStartElement("data");
    writer->writeTextElement("PIP_Number", pip_Num);
    writer->writeTextElement("VIP_Number", vip_Num);
    writer->writeStartElement("Calibration");
    if (type==0) writer->writeTextElement("C_Date", QDateTime::currentDateTime().toString("dd.MM.yyyy hh:mm"));
    else  writer->writeTextElement("C_Date", calibDate);
    for(int i = 0; i < 21; i++)
    {
        oc = calib->at(i);
        oc.WriteOneCalibration(writer);
    }
    writer->writeEndElement();
    writer->writeStartElement("Temperature");
    for(int i = 0; i < 6; i++)
    {
        ot = temper->at(i);
        ot.WriteOneTemperature(writer);
    }
    writer->writeEndElement();
    writer->writeEndElement();
    xmlFile->close();
    delete xmlFile;
    isFileOpened = true;
    return true;
}




Код:
XmlMainClass::XmlMainClass(QString fileName, QList<OneTemperature> temperList, QString pip, QString vip)
{
    xmlFileName = fileName;
    pip_Num = pip;
    vip_Num = vip;
    QDir dir;
    dir.setPath(xmlFileName);
    if(!dir.exists(xmlFileName))
    {
        CreateNewDataStruct();
        WriteAllFile(1);
    }
    ReadAllFile();
    OneTemperature ot;
    for(int i = 0; i < 6; i++)
    {
        ot = temperList.at(i);
        if(!ot.IsEmpty()) temper->replace(i, ot);
    }
}
Mitzzz вне форума Ответить с цитированием