2010-01-05 134 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