2010-01-05 192 views
0

我有一些CHM文件,并且每个文件都是针对5个不同Html文件的压缩HTML。我的意思是,可以说我有5个不同的文件,名为Alpha,Beta,Gamma,Delta,Theta。说,我压缩这些5在一个CHM文件。让我们调用CompressedHtm.CHM文件。我有> 500个这些文件。 现在我想检查所有这些> 500个文件是否都有5个子文件(即Alpha,Beta,Gamma,Delta,Theta)。有没有办法检查在VC++ 6.0/MFC没有分解CHM文件。如何检查chm文件中是否存在子文件?

回答

1

With Free Pascal提供了一个完全独立的(*)命令行可执行CHMLS,允许列出CHM文件的内容。它存在于多个平台。

您可以使用管道执行该操作,然后处理输出。

我碰巧的邮政编码为其他某人的前男友几天就回来,你可以让他们在这里 http://www.stack.nl/~marcov/chmls.zip

(或下载FPC 2.4.0窗口,如果你不相信我释放)

(*)我不知道win9x上的状态。

输出看起来像:

<Section> <Offset> <UnCompSize> <Name> 
0    0   0 /#ITBITS 
1  27737212  192334 /#STRINGS 
0    70   133 /#SYSTEM 
1  22414493  169080 /#TOCIDX 
1  26847375  339904 /#TOPICS 
1  27187279  294757 /#URLSTR 
1  27482036  255176 /#URLTBL 
1  27929546  1174749 /$FIftiMain 
1  22411742   2751 /$OBJINST 
0    0   0 /$WWKeywordLinks/ 
1  24122411  628812 /$WWKeywordLinks/BTree 
1  24751223  111371 /$WWKeywordLinks/Data 
1  24862594   2378 /$WWKeywordLinks/Map 
1  24864972   1 /$WWKeywordLinks/Property 
0    0   70 /_#_README_#_ 
0    0   0 /baseunix/ 
1  10656150   1395 /baseunix/_stat_ver.html 
1  10651853   1438 /baseunix/_stat_ver_kernel.html 
1  10654717   1433 /baseunix/_stat_ver_linux.html 
1  10650407   1446 /baseunix/_stat_ver_linux_old.html 
1  10653291   1426 /baseunix/_stat_ver_svr4.html 
1  10452426   1438 /baseunix/arg_max.html 
1  10644473   1510 /baseunix/bitsinword.html 

的开头的文件#和$内部文件。

(这些工具是与免费Pascal的CHM库一起提供的utils,它支持CHM读/写支持,与Free Pascals文档和帮助系统无关,它独立于操作系统,据我所知它在OS X上运行良好/ PowerPC64

0

HTML帮助使用IE进行显示。所以你只需要使用web浏览器导航到像mk这样的URL:@MSITStore:c:\ WINDOWS \ Help \ htmlhelp.chm ::/apiref.htm。如果文件不存在,您将得到带有404状态码的DWebBrowserEvents2 :: NavigateError。 请注意,您可能会在现代版本的Windows上收到其他错误,如Microsoft已有limited its usage due to security concerns