我想问一下大家,我现在用mfc想要做一个对话框,想实现的功能是在对话框上放置一个按钮,当你按下其中某个按钮时, 程序从一个已有的文件中把它的数据写到一批新的文件中,
接着把数据库中的前20条记录再写在第一个新文件中,依此类推把数据库之后的20条记录写在下一个文件中,有多少条数据库记录就产生多少个新文件。其实我是想产生像新闻页面的那种网页,每个页面显示20条新闻,新闻就是从数据库读出来得那20条记录。
所谓的已有文件内容其实是指网页的固定部分。 
这该怎么做。我现在已经连接上了access数据库,也获得了数据库记录的个数,但是怎么样一次生成一批文件呢?而且我不知道一共生成多少文件要根据数据库记录个数来产生,当数据库记录变多的时候,产生文件多,反之就少。有人能给点思路吗?比如类似介绍的文章之类的。 
麻烦了

解决方案 »

  1.   


    你每到 i_Count%20 == 0 的时候就关掉旧文件再换一个新的文件名打开写不就行了.
    或把你写20条记录进文件的程序贴上来
      

  2.   

    while(!m_pRecordset->adoEOF)
    {
    var = m_pRecordset->GetCollect("title");
    if(var.vt != VT_NULL)
    strTitle = _com_util::ConvertBSTRToString((_bstr_t)var); var = m_pRecordset->GetCollect("class");
    if(var.vt != VT_NULL)
    strClass = _com_util::ConvertBSTRToString((_bstr_t)var); var = m_pRecordset->GetCollect("num");
    if(var.vt != VT_NULL)
        strNum = _com_util::ConvertBSTRToString((_bstr_t)var);
                
    ofstream fout("indexq.html",ios::app); 

        fout<<strTitle<<"-"<< strClass<<" - "<<strNum<<"<br/>"<<endl;  
                fout.close();
                
    m_pRecordset->MoveNext();
    }
                fout.close();
    查找记录,写进文件里的代码
      

  3.   


    int i_Count=0;
    int i_FileCount=0;
    CString m_FileName;

    while(!m_pRecordset->adoEOF) 

     i_Count++;
    var = m_pRecordset->GetCollect("title"); 
    if(var.vt != VT_NULL) 
    strTitle = _com_util::ConvertBSTRToString((_bstr_t)var); var = m_pRecordset->GetCollect("class"); 
    if(var.vt != VT_NULL) 
    strClass = _com_util::ConvertBSTRToString((_bstr_t)var); var = m_pRecordset->GetCollect("num"); 
    if(var.vt != VT_NULL) 
        strNum = _com_util::ConvertBSTRToString((_bstr_t)var); if (i_Count>=20)
    {
    i_FileCount++;
    i_Count=0;
    }

    m_FileName.Format("indexq[%d].html",i_FileCount);
    ofstream fout(m_FileName,ios::app);     fout < <strTitle < <"-" < < strClass < <" - " < <strNum < <" <br/>" < <endl;  
                fout.close(); 
               
    m_pRecordset->MoveNext(); 

                fout.close();