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