遍历目录下的HTML文件,得到其Title信息

本文介绍了一个用于自动化处理HTML Help Workshop项目的工具,该工具能够遍历指定目录下的所有HTML文件,提取每个文件的标题,并据此生成HHK文件及HTML Help API Information所需的Alias参数。
功能:遍历目录下的htm文件,并得到Title,生成HTML Help WorkShop软件所需要的hhk文件.
          另外,生成HTML Help WorkShop下的HTMLHelp API Information的Alias参数

None.gif//*********************************
None.gif
//INFO:   Get HTML file's title
None.gif
//Param:   htmlFilePath - html file's fullpath
None.gif
//return:  html file's title
None.gif
//**********************************
None.gif
CString GetTitle(CString htmlFilePath)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif    CFile htmlFile;
InBlock.gif    
if(!htmlFile.Open((LPCTSTR)htmlFilePath,CFile::modeRead))
InBlock.gif        cout
<<"Can't Open "<<(LPCTSTR)htmlFilePath;
InBlock.gif    DWORD fLen 
= htmlFile.GetLength();
InBlock.gif    
char* fileStr = new char[fLen];
InBlock.gif    memset(fileStr,
0,0);
InBlock.gif    htmlFile.Read(fileStr,fLen);
InBlock.gif    CString fFile,retStr;
InBlock.gif    fFile 
= fileStr;
InBlock.gif    
int nStart=fFile.Find("<title>");
InBlock.gif    nStart 
+= 7;
InBlock.gif    
int nEnd = fFile.Find("</title>");
InBlock.gif    retStr 
= fFile.Mid(nStart);
InBlock.gif    retStr 
= retStr.Left(nEnd-nStart);
InBlock.gif    
return retStr;
InBlock.gif    htmlFile.Close();
ExpandedBlockEnd.gif}

None.gif
None.gif
None.gif
//*********************************
None.gif
//INFO:   Fill the "HTML Help WorkShop" HHK information
None.gif
//Param:   fileTitle - HTML file's title / fileName - HTML file's Name
None.gif
//return:  html file's title
None.gif
//**********************************
None.gif
BOOL WriteHHKFile(CString fileTitle,CString fileName)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif    CFile hhkFile;
InBlock.gif    
if(!hhkFile.Open("D:\\Work Project\\WinHelp\\easyhtml\\HTML\\Ccons34jtmp.txt", CFile::modeNoTruncate|CFile::modeReadWrite ))
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        cout
<<"can not Open txt file"<<endl;
InBlock.gif        
return FALSE;
ExpandedSubBlockEnd.gif    }

InBlock.gif    CString strKey;
InBlock.gif    strKey.Format(
"%s%s%s%s%s%s%s%s%s%s%s\0","\n<LI><OBJECT type=\"text/sitemap\">\n",
InBlock.gif        
"<param name=\"Keyword\" value=\"",fileTitle,"\">\n",
InBlock.gif        
"<param name=\"Name\" value=\"",fileTitle,"\">\n",
InBlock.gif        
"<param name=\"Local\" value=\"",fileName,"\">\n</OBJECT>\n");
InBlock.gif
//    cout<<(LPCTSTR)strKey<<endl;
InBlock.gif
    hhkFile.SeekToEnd();
InBlock.gif    hhkFile.Write(strKey.GetBuffer(strKey.GetLength()),strKey.GetLength());
InBlock.gif    hhkFile.Close();
InBlock.gif
InBlock.gif
InBlock.gif    
return TRUE;
ExpandedBlockEnd.gif}

None.gif
//*********************************
None.gif
//INFO:  write "Microsoft HTML Help WorkShop" API alias information
None.gif
//Param:   fileName - HTML file's Name
None.gif
//return:  html file's title
None.gif
//**********************************
None.gif
BOOL WriteAliasFile(CString fileName)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif    CFile aliasFile;
InBlock.gif    
if(!aliasFile.Open("D:\\Work Project\\WinHelp\\easyhtml\\HTML\\cons34alias.txt", CFile::modeNoTruncate|CFile::modeReadWrite ))
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        cout
<<"can not Open alias file"<<endl;
InBlock.gif        
return FALSE;
ExpandedSubBlockEnd.gif    }

InBlock.gif    CString strAlias;
InBlock.gif    strAlias 
=  fileName.Left(9);
InBlock.gif    strAlias 
+= "="+fileName;
InBlock.gif    strAlias 
+= "\n";
InBlock.gif    
//cout<<(LPCTSTR)strAlias;
InBlock.gif
    aliasFile.SeekToEnd();
InBlock.gif    aliasFile.Write(strAlias.GetBuffer(strAlias.GetLength()),strAlias.GetLength());
InBlock.gif    aliasFile.Close();
InBlock.gif    
return TRUE;
ExpandedBlockEnd.gif}

None.gif
None.gif
None.gif
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif    
int nRetCode = 0;
InBlock.gif
InBlock.gif    
// initialize MFC and print and error on failure
InBlock.gif
    if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
// TODO: change error code to suit your needs
InBlock.gif
        cerr << _T("Fatal Error: MFC initialization failed"<< endl;
InBlock.gif        nRetCode 
= 1;
ExpandedSubBlockEnd.gif    }

InBlock.gif    
else
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        CFileFind finder;
InBlock.gif        CString fileName,filePath,fileTitle;
InBlock.gif        BOOL bWorking 
= finder.FindFile("D:\\Work Project\\WinHelp\\easyhtml\\HTML\\*.htm");
InBlock.gif        
while(bWorking)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            bWorking 
= finder.FindNextFile();
InBlock.gif            
//filePath = finder.GetFilePath();
InBlock.gif
            fileName = finder.GetFileName();
InBlock.gif            
//fileTitle = GetTitle(filePath);
InBlock.gif
            WriteAliasFile(fileName);
InBlock.gif        
//    WriteHHKFile(fileTitle,fileName);
InBlock.gif            
//cout<<(LPCTSTR)fileTitle<<endl;
InBlock.gif            
//cout<<(LPCTSTR)finder.GetFilePath()<<endl;
ExpandedSubBlockEnd.gif
        }

InBlock.gif        
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif    
return nRetCode;
ExpandedBlockEnd.gif}

None.gif
None.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值