Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QSettings
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
fortero
Есть вот такой код:
QSettings readSet(tr("fwconf.ini"), QSettings::IniFormat);
    readSet.setIniCodec("CP1251");
    readSet.beginGroup(idworm);
    
    sizWinX = readSet.value("minSizX", "").toInt();
    sizWinY = readSet.value("minSizY", "").toInt();
    for(int uio=1;!readSet.value(QString("namColWieTab%1").arg(uio), "").toString().isEmpty();uio++)
        titl << readSet.value(QString("namColWieTab%1").arg(uio), "").toString();
    for(int uio=1;!readSet.value(QString("proColWieTab%1").arg(uio), "").toString().isEmpty();uio++)
        propWin << readSet.value(QString("proColWieTab%1").arg(uio), "").toFloat();
    for(int uio=1;!readSet.value(QString("namColSqlTab%1").arg(uio), "").toString().isEmpty();uio++)
        listTabSql << readSet.value(QString("namColSqlTab%1").arg(uio), "").toString();
    tabNamSql.append(readSet.value("namSqlTab", "").toString());
    titlForms.append(readSet.value("addTit", "").toString());
    descForms.append(readSet.value("addDesc", "").toString());
    for(int uio=1;!readSet.value(QString("listLab%1").arg(uio), "").toString().isEmpty();uio++)
        listsLab << new QLabel(readSet.value(QString("listLab%1").arg(uio), "").toString());
    for(int uio=1;!readSet.value(QString("objNam%1").arg(uio), "").toString().isEmpty();uio++)
        objNam << readSet.value(QString("objNam%1").arg(uio), "").toString();
    for(int uio=1;!readSet.value(QString("validObj%1").arg(uio), "").toString().isEmpty();uio++)
        validObj << readSet.value(QString("validObj%1").arg(uio), "").toString();
    titlFormsEdit.append(readSet.value("editTitl", "").toString());
    descFormsEdit.append(readSet.value("editDesc", "").toString());
    for(int uio=1;!readSet.value(QString("findsNam%1").arg(uio), "").toString().isEmpty();uio++)
        findsPolNam << readSet.value(QString("findsNam%1").arg(uio), "").toString();
    for(int uio=1;!readSet.value(QString("findsObj%1").arg(uio), "").toString().isEmpty();uio++)
        findsObjNam << readSet.value(QString("findsObj%1").arg(uio), "").toString();
    readSet.endGroup();


Подскажите пожалуйста, как сделать, что бы при прочтении файла класс QSettings не редактировал ini файл оставлял его в первозданном состоянии, а то после каждого прочтения он удаляет пробелы между строками, кодировку переворачивает в какую то абра кодабру. Хоть и с кодеровками всё в порядке. Как ему запретить насильно, редактировать файл?
Спасибо за внимание!
panter_dsd
Переопредели QSettings::WriteFunc.
fortero
Цитата(panter_dsd @ 19.6.2011, 22:51) *
Переопредели QSettings::WriteFunc.

Это как? Пример можно?
Litkevich Yuriy
у меня при чтении, НЕ записи, ничего не изменяется.

Цитата(fortero @ 20.6.2011, 1:11) *
readSet.setIniCodec("CP1251");
в Qt такая кодировка не известна. См. список тут
panter_dsd
Litkevich Yuriy, CP1251 - это алиас и Qt его отлично понимает.
ufna
Цитата(Litkevich Yuriy @ 22.6.2011, 14:18) *
у меня при чтении, НЕ записи, ничего не изменяется.


+1
Litkevich Yuriy
Цитата(panter_dsd @ 22.6.2011, 16:53) *
CP1251 - это алиас и Qt его отлично понимает.
Если написать
QTextCodec::setCodecForTr(QTextCodec::CodecForName("CP1251"));
то с кодировкой будут проблемы, если же написать:
QTextCodec::setCodecForTr(QTextCodec::CodecForName("Windows-1251"));
то проблем нет.

П.С.
Обжёгся на Qt 4.3 с тех пор пишу только "официальное имя"
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2019 IPS, Inc.