запись структур в файл

MatriXakep 29.04.2004 - 21:54 | есть структура: typedef struct infomation { struct ClientInfo { char name[NAME_ADDR_M]; char address[NAME_ADDR_M]; char phone[PHONE_M]; char email[EMAIL_M]; } Client; struct Info2 { char name[NAME_ADDR_M]; char phone[PHONE_M]; char email[EMAIL_M]; } info2; }INFO; Необходимо её записать в файл т.е. её данные. пишем (используем MFC класс CFile) CFile cfgInfo; if(cfgInfo.Open(szPath,CFile::modeWrite|CFile::modeCreate)) { //pInfo - указатель на INFO cfgInfo.Write(pInfo,sizeof(*pInfo)); cfgInfo.Close(); } ничего не записывает. только символ '\0' (0x00) В чем проблема? Пробовал в другом примере сделать где не содержится внутренние структуры типа struct a { int a1; int a2; };
LF 1 - 30.04.2004 - 06:30 | Структуру ты хоть заполнил? cfgInfo.Write(( CHAR*) pInfo,sizeof(*pInfo)); И пиши через OLE Stuctured Storage или Btieve
? 2 - 30.04.2004 - 09:02 | попробуй в sizeof вставить не саму переменную, а её тип, например sizeof(INFO).
VaS 3 - 30.04.2004 - 09:05 | Пишем массив из 2 простых структур: typedef struct Infomation { char Name[30]; int Num; }INFO; ... { INFO *pInfo = static_cast<INFO*>(malloc(sizeof(INFO) * 2)); ZeroMemory(pInfo, sizeof(INFO) * 2); strcpy(pInfo[0].Name, "Name 1"); pInfo[0].Num = 1; strcpy(pInfo[1].Name, "Name 2"); pInfo[1].Num = 2; CFile cfgInfo; if (cfgInfo.Open("c:\\12345.dat", CFile::modeWrite | CFile::modeCreate)) { cfgInfo.Write(pInfo, sizeof(INFO) * 2); cfgInfo.Close(); } free(pInfo); }
MatriXakep 4 - 30.04.2004 - 19:24 | Проблема устранена! Ок.+Спасибо.

>>