Проблема с управлением файлами в MFC
От: Trapper  
Дата: 29.09.01 15:52
Оценка:
Проблема-в программе необходимо записать в файл n-ое кол-во структур типа
Struct MyStruct
{
int par1;
int par2;
CString str;
}

Пытался в файл их записать , а потом оттуда их вызвать,толком нечего не получилость.
(С файлами в MFC вообще не умею обращаться).Как удобнее всего осуществить задуманное?Был бы очень признателен за помощь.
Trapper
Re: Проблема с управлением файлами в MFC
От: Spini  
Дата: 29.09.01 16:50
Оценка:
Здравствуйте Trapper, вы писали:

T>Проблема-в программе необходимо записать в файл n-ое кол-во структур типа

[skip]

В зависимости от контекста м.б. разные решения. Самое простое (я бы сказал вульгарное) — юзать CArchive. Ну что-то вроде этого:

// Header
typedef struct MyStruct
{
int int1;
int int2;
CString str1;
} MyStruct;

public:
MyStruct m_struct[3];

// Impl
void CMy6678Doc::Serialize(CArchive& ar)
{
// Some data to writing
m_struct[0].int1 = 10;
m_struct[0].int2 = 20;
m_struct[0].str1 = "Hello";

m_struct[1].int1 = 11;
m_struct[1].int2 = 21;
m_struct[1].str1 = "fucking";

m_struct[2].int1 = 12;
m_struct[2].int2 = 22;
m_struct[2].str1 = "World";

if (ar.IsStoring())
{
ar.Write(m_struct, sizeof(m_struct) * 3);
}
else
{
ar.Read(m_struct, sizeof(m_struct) * 3);
// Do something with data...
}

}
Re: Проблема с управлением файлами в MFC
От: IT Россия linq2db.com
Дата: 29.09.01 18:09
Оценка:
Здравствуйте Trapper, вы писали:

T>Проблема-в программе необходимо записать в файл n-ое кол-во структур типа

struct MyStruct
{
  int par1;
  int par2;
  CString str; // здесь ошибка
}


При сохранении в файл у тебя сохраняется не строка, а содержимое объекта CString? который содержит не саму строку, а указатель на нё. Т.е. по мимо прочего ты сохраняешь указатель. Попробуй так:

struct MyStruct
{
  int par1;
  int par2;
  char str[50]; // размер, что бы помещалась максимальная строка
}


должно получится.
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Проблема с управлением файлами в MFC
От: Sasparella США  
Дата: 29.09.01 18:53
Оценка:
Здравствуйте IT, вы писали:

IT>Здравствуйте Trapper, вы писали:


T>>Проблема-в программе необходимо записать в файл n-ое кол-во структур типа

IT>
IT>struct MyStruct
IT>{
IT>  int par1;
IT>  int par2;
IT>  CString str; // здесь ошибка
IT>}
IT>


IT>При сохранении в файл у тебя сохраняется не строка, а содержимое объекта CString? который содержит не саму строку, а указатель на нё. Т.е. по мимо прочего ты сохраняешь указатель. Попробуй так:


IT>
IT>struct MyStruct
IT>{
IT>  int par1;
IT>  int par2;
IT>  char str[50]; // размер, что бы помещалась максимальная строка
IT>}
IT>


IT>должно получится.



Народ, мож я чего и недопонял — но у во первых у CString переорпеделен оператов вставки в архив "<<" а во вторых есть ф-я -член Seriazlize(CArchive& ar).

Зачем извращаться когда все уже ит так написано??? ;)


Саша.
Re[3]: Проблема с управлением файлами в MFC
От: WindJammer  
Дата: 30.09.01 05:42
Оценка:
Здравствуйте Sasparella, вы писали:

S>Народ, мож я чего и недопонял — но у во первых у CString переорпеделен оператов вставки в архив "<<" а во вторых есть ф-я -член Seriazlize(CArchive& ar).


S>Зачем извращаться когда все уже ит так написано??? ;)


Просто IT не очень любит MFC и написал, так сказать, для случая pure C
:)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.