На каникулы задали лабораторную работу (сделать программу, которая будет хранить метаданные файла, и текст содержащийся в нем, и различные функции для изменения данных), где одна из функций программ, это хранение данных, но обычное сохранение данных в txt
файле не хочется делать. Как можно сохранять/хранить данные в другом формате?
Проще xml или json, как уже написали. Как вариант БД можно использовать sqlite. Очень проста в использовании и не требует дополнительной установки на компьютер. Достаточно положить sqlite-dll-win64-x64-3260000.zip библиотеки из архива рядом с базой. Удобный и бесплатный инструмент редактирования SQLiteManager.
Пример использования json могу дать такой(я использую Qt тут): сам json:
{
"Format": [
{
"dateFormat": "MM.yyyy"
},
{
"dateFormat": "yyyy.MM"
},
{
"dateFormat": "dd.MM.yyyy"
}
]
}
В функцию чтения передаётся путь до файла:
...
QFileInfo info(QDir::currentPath()+"formatDate.json");
ReadJSON(QFileInfo info)
...
Функция чтения :
void MW::ReadJSON(QFileInfo info) {
if (info.fileName()=="formatDate.json") {
QString SettingsPath = info.absoluteFilePath();
QFile loadFile(SettingsPath);
if (!loadFile.open(QIODevice::ReadOnly)) {
QMessageBox::critical(this, tr("Ошибка"), tr("Нельзя открыть файл!"));
return;
} else {
QByteArray SettingsData = loadFile.readAll();
QJsonDocument loadDoc(QJsonDocument::fromJson(SettingsData));
QJsonArray jsonArray = loadDoc["Format"].toArray();
foreach (const QJsonValue & value, jsonArray) {
QJsonObject obj = value.toObject();
qDebug()<<obj["dateFormat"].toString();
}
}
}
}
Функция записи файла:
void MW::SaveJSON() {
QString PathToSettingsFiles = "formatDate.json";
QFileInfo fi(QDir::currentPath(), PathToSettingsFiles);
QFile JsonFile(fi.absoluteFilePath());
JsonFile.open(QFile::WriteOnly);
QJsonDocument JsonDoc;
QJsonArray dateFormat_array;
QString dateFormat_str("dateFormat");
QStringList DateList = { "MM.yyyy", "yyyy.MM", "dd.MM.yyyy" };
for (int x=0; x<DateList.size(); x++) {
QJsonObject item_data;
item_data.insert(dateFormat_str, QJsonValue(DateList.at(x)));
dateFormat_array.push_back(QJsonValue(item_data));
}
QJsonObject final_object;
final_object.insert(QString("Format"), QJsonValue(dateFormat_array));
JsonDoc.setObject(final_object);
JsonFile.write(JsonDoc.toJson());
return;
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Все делаю по этой инструкции, но выходит ошибка qtsqldrivers-configpri: No such file or directoryЭтого файла у меня вообще нет на компьютере