Привет всем.
Пытаюсь сохранить в файл объекты некоторого класса(поле int и QString), используя для этого структуру типа
struct zap_adrs{
int id;
char adrs[50];
};
QString заменил char, т.к. вроде есть проблемы с записью этого типа.
Проблема в том, что после считывания у меня вместо русских символов отображаются "
?".
Запись:
ID - абстрактный класс, пример упростил просто.
void WriteAddress(ID &ob, QFile &f)
{
address *w;
zap_adrs A;
w=(address*)(&ob);
A.id=w->get_id(); //возвращает значение одного из полей
strcpy(A.adrs, w->get_name().toAscii()); //копирую в структуру другое поле
f.write((char*)&A, sizeof(A));
}
void Programm::SaveToFile()
{
QFile file("data.dat");
WriteAddress(*(collection->at(0)), file); //collection - это QVector< ID* >
file.close();
}
Считывание:
void Programm::LoadFromFile()
{
if(collection->size()!=0)
collection->clear();
QFile f("data.dat");
zap_adrs A;
address *a;
f.read((char*)&A, sizeof(A));
a=new address(A.id, A.adrs);
collection->push_back(a);
f.close();
}
Теперь в A.adrs закорючки.