热度 15
2012-1-30 21:55
1986 次阅读|
3 个评论
在平时读书的时候,总会有看到中途被中断的情况发生,而在现实的情况下,我们可以再书中加上一个精致的书签,其实在电脑电子书里,我们也可以自己制作一个电子书签,在这里我们不妨把它称为软件书记阅读进程记录器。 这里就是要简要的介绍如何自己制作一个软件意义上的精致的“书签”,来详细的记录我们所需要的阅读相关内容。 本软件系VC++6.0制作,使用的是MFC工程,其实在我做相关的类似的软件的时候,我就感受到VC++6.0中MFC的方便之处,“所见即所得”的软件编程方式,对开发人员是很有益处的,如果对它有兴趣,你可以去看一下孙鑫的VC视频,里面有很详细的讲解。 下面就是软件的界面: 我给它起的名字就是阅读记录器,当然,你也可以自己想出一个比较别致的名字。 当然,这个软件业还是有很多地方需要改进的,只要你想得到,你就可以在多个方面对之进行改进。这一点我会在后面说明。 简要介绍一下软件的使用方法及相关的分配: 每个软件都需要相关的说明,如果你要将这个软件给你熟悉的人们用,你就需要给他们在使用之前的说明,“软件使用前的说明”点击后会在右边的大片空白处出现相关的软件的说明内容: 软件左边的栏目即为对已记录内容的查找,输入书名既可以查找到你曾经记录过的阅读进程,而如果没有找到,他会提醒你没有这样的记录,那么就可以在右边的栏目里输入相关的阅读进程的信息,相关的查找状态显示在右下角的编辑框中。 对于编程的方法,其实主要就是对CString类型的数据类型的操作,建立一个文件指针,然后用Read方法可以将内容一行一行的读入上述的数据类型的变量中,其实就是在系统给它分配的相关的内存中。对于CString类型的变量在文件输入输出相关的函数中的应用,最好还是需要去详细的看一下MSDN中对他的介绍。 下面为部分代码摘录: int jilu; int j; char* pszFileName="F:\\geithei.txt"; CStdioFile myFile2; CFileException fileException; if(myFile2.Open(pszFileName,CFile::typeText|CFile::modeReadWrite),fileException) { CString read1; myFile2.ReadString(read1); jilu=atoi(read1); } else { TRACE("Can't open file %s,error=%u\n",pszFileName,fileException.m_cause); } myFile2.Close(); //此处重新写入 CString shuming ; CString jincheng ; GetDlgItemText(IDC_EDIT3,shuming ); GetDlgItemText(IDC_EDIT4,jincheng ); 。。。。。。。。。 char* pszFileName4="F:\\myfile.txt"; CStdioFile myFile4; CFileException fileException4; if(myFile4.Open(pszFileName4,CFile::typeText|CFile::modeReadWrite),fileException4) { for(j=0;j p="" { myFile4.SeekToBegin(); for(j=0;j p="" { myFile4.ReadString(shuming ); myFile4.ReadString(jincheng ); } } } else { TRACE("Can't open file %s,error=%u\n",pszFileName4,fileException4.m_cause); } myFile4.Close(); 。。。。。。。。 //改变新的页码 char* pszFileName22="F:\\geithei.txt"; CStdioFile myFile22; CFileException fileException22; if(myFile22.Open(pszFileName22,CFile::modeCreate|CFile::typeText|CFile::modeReadWrite),fileException22) { CString jilujilu; jilujilu.Format("%d",jilu+1); myFile22.WriteString(jilujilu); SetDlgItemText(IDC_EDIT5," 添加成功!"); } else { TRACE("Can't open file %s,error=%u\n",pszFileName22,fileException22.m_cause); } myFile22.Close(); 。。。。。。。。。 当然,每一个软件都有需要改进的地方,在这个软件中,你不难看出我是运用一行一行的查找记录文件的方法来查找你要查询的信息,在信息量少的情况下,你可以很快的做到这一点,但是一旦信息量非常巨大的时候,这一种方法就会显得应对不足了,而子啊这里我们可以新建进程来进行并行的查找方式,相关的还有公式,使它的效率更高。 同时,我们在阅读的时候会有些许的感悟和想法,这一切当然也希望可以将他们一并记录在一个文件中,当你下次查询的时候能够一并显示出来。这一点并不难实现,所以方法不在此赘述。 最后想要说的是,在查找的时候,还是有很多的改进可以做出的,在这个软件中,你所输入的书名一定要与你之前新建的对应书名的名字完全一样,包括格式上的严格的要求,所以改进是很明显的,当字符串部分匹配的时候,可以返回所有相关记录的内容,这样也符合我们的习惯,我们当然不可能完全的记住之前输入字符串的每一个细节,当然,这一点需要对字符串的处理十分的熟悉,这一点改进我也将更多的学习。 好了,作为我的第一篇DIY的文章,如果有不足之处,还请大家多多指教!如果有相关方面的问题,可以加我的qq:970435817。