PDA

View Full Version : problems with beginReadArray or maybe beginWriteArray



Alfredo
1st July 2010, 10:11
Hi all,

I use beginWriteArray to write some settings.
The content of the config file looks like this:

[settings]
settings\1\Name=bibuweb
settings\1\Server=bibuweb.de
settings\1\Port=21
settings\1\Login=login
settings\1\Password=pw
settings\1\Standard=true
settings\size=1

The problem is, I cant read back this config with beginReadArray.
beginReadArray gives back 0.

According to the QSettings documentation the config file written with beginWriteArray should look like something like this:

[settings]
settings/1/Name=bibuweb
settings/1/Server=bibuweb.de
settings/1/Port=21
settings/1/Login=login
settings/1/Password=pw
settings/1/Standard=true
settings/size=1

I changed this manually, but this wont work either.
When I change this file manually to this:

[settings]
1\Name=bibuweb
1\Server=bibuweb.de
1\Port=21
1\Login=login
1\Password=pw
1\Standard=true
size=1

beginReadArray can read the file perfectly.

Does anybody know where the problem is?

Lykurg
1st July 2010, 10:48
Does anybody know where the problem is?Without seeing any pice of code, where you use beginReadArray/beginWriteArray, we hardly can tell anything!

Alfredo
1st July 2010, 11:27
This is the code:

WriteSettings


QSettings ftpsettings("DropBox","FtpSettings");
int size = ftpsettings.beginReadArray("settings");
ftpsettings.beginWriteArray("settings");

ftpsettings.setArrayIndex(size);
ftpsettings.setValue("Name", settings.name);
ftpsettings.setValue("Server", settings.server);
ftpsettings.setValue("Port", settings.port);
ftpsettings.setValue("Login", settings.login);
ftpsettings.setValue("Password", settings.pw);
ftpsettings.setValue("Standard", settings.std);
ftpsettings.endArray();


ReadSettings:



QSettings ftpsettings("DropBox","FtpSettings");
int size = ftpsettings.beginReadArray("settings");

for (int i = 0; i < size; ++i)
{
ftpsettings.setArrayIndex(i);
FtpLoginData loginSettings;

loginSettings.name = ftpsettings.value("Name").toString();
loginSettings.server = ftpsettings.value("Server").toString();
loginSettings.port = ftpsettings.value("Port").toString();
loginSettings.login = ftpsettings.value("Login").toString();
loginSettings.pw = ftpsettings.value("Password").toString();
loginSettings.std = ftpsettings.value("Standard").toBool();

}
ftpsettings.endArray();



I'm developing on Linux with Qt 4.6.3