Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2012, 16:19   #1
videolord
Пользователь
 
Аватар для videolord
 
Регистрация: 23.02.2011
Сообщений: 28
Радость полиморфизм в MFC

привет всем!
надо сохранить файл в хml и log файлах
все сделал но надо было чтоб “SaveAsXML” ,"SaveAsLog" должна использовать наследуемые классы от класса “SaveAs” и применять общие алгоритмы работы не зависимо от реализуемых функций( virtual function ).не могу реализовать

тут код 2х кнопок для сохранения(xml и log)

Код:
//сохраняет как log файл
void CLogFileParserDlg::OnSaveasLogfile()
{
   CFileDialog fileDlg(FALSE);
    fileDlg.m_ofn.lpstrFilter=L"Log Files (*.Log)\0*.Log\0All Files (*.*)\0*.*\0\0";
    fileDlg.m_ofn.lpstrTitle = L"My File Dialog";
    fileDlg.m_ofn.lpstrDefExt=L"log";
    fileDlg.m_ofn.lpstrTitle=L"Save LOG File As";
    CString szlstfile;
    if ( fileDlg.DoModal() == IDOK)
    {
     szlstfile = fileDlg.GetPathName(); // This is your selected file name with path
     MessageBox(szlstfile); 
    }
    CStdioFile input(szlstfile,CFile::modeRead|CFile::modeCreate|CFile::modeReadWrite);
    input.modeCreate;
    int n=m_list.GetItemCount();
    CString cs_text;
    for(int i=0;i<n;i++)
    {
     cs_text=m_list.GetItemText(i,0)+'\t'+m_list.GetItemText(i,1)+'\t'+m_list.GetItemText(i,2)+'\t'+
     m_list.GetItemText(i,3)+'\t'+m_list.GetItemText(i,4)+'\n';
         input.WriteString(cs_text);
    }
        input.Close();
}

Код:
//сохраняет как xml файл
void CLogFileParserDlg::OnSaveasXmlfile()
{
    CFileDialog fileDlg(FALSE);
    Initializes m_ofn structure  
    fileDlg.m_ofn.lpstrFilter=L"XML Files (*.xml)\0*.xml\0Text Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0\0"; 
    fileDlg.m_ofn.lpstrTitle = L"My File Dialog";
    fileDlg.m_ofn.lpstrDefExt=L"XML";
    fileDlg.m_ofn.lpstrTitle=L"Save XML File As";
    CString szlstfile;
    if ( fileDlg.DoModal() == IDOK)
    {
     szlstfile = fileDlg.GetPathName();
    }
    CStdioFile input(szlstfile,CFile::modeRead|CFile::modeCreate|CFile::modeReadWrite);
    input.modeCreate;
    int n=m_list.GetItemCount();
    CString cs_text;
    input.WriteString(_T("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"));
    input.WriteString(_T("<grid-data>\n"));
        for(int i=0;i<n;i++)
    {
          cs_text=m_list.GetItemText(i,0)+'\t'+m_list.GetItemText(i,1)+'\t'+m_list.GetItemText(i,2)+'\t'+
          m_list.GetItemText(i,3)+'\t'+m_list.GetItemText(i,4);
          input.WriteString(_T(" <grid-row>"));
          input.WriteString(cs_text);
          input.WriteString(_T(" </grid-row>\n"));
        }
        input.WriteString(_T("</grid-data>\n"));
        input.Close();
 
}
videolord вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Полиморфизм Anubys Помощь студентам 1 26.12.2011 20:42
Полиморфизм Zorgan Visual C++ 22 29.08.2011 12:23
Полиморфизм MasterSporta Общие вопросы C/C++ 3 10.04.2011 23:46
полиморфизм slayerblya Общие вопросы C/C++ 1 27.02.2011 01:43
Полиморфизм mister2010 Общие вопросы C/C++ 30 24.05.2010 01:07