私はいくつかのCHMファイルを持っており、各ファイルは5つの異なるHtmlファイルの圧縮されたhtmlです。つまり、Alpha、Beta、Gamma、Delta、Thetaという名前の5つの異なるファイルがあるとします。たとえば、これら5つをCHMファイルに圧縮します。そのファイルをCompressedHtm.CHMと呼びましょう。これらのファイルは500個を超えています。次に、これらの500を超えるファイルすべてに5つのサブファイル(つまり、アルファ、ベータ、ガンマ、デルタ、シータ)がすべて含まれているかどうかを確認します。CHMファイルを分解せずにVC++6.0 / MFCでそれを確認する方法はありますか?
2 に答える
Free Pascalには、CHMファイルの内容を一覧表示できる完全にスタンドアロン(*)の実行可能CHMLSが付属しています。複数のプラットフォームに存在します。
パイプを使用してそれを実行し、出力を処理することができます。
たまたまsbのexeを数日前に圧縮しました。http://www.stack.nl/~marcov/chmls.zipで入手できます 。
(または、私を信頼していない場合は、fpc 2.4.0 Windowsリリースをダウンロードしてください)
(*)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
#と$で始まるファイルは内部ファイルです。
(ツールは、Free Pascalのドキュメントおよびヘルプシステム用の他のツールに依存しないCHM読み取り/書き込みサポートをサポートするFreePascalのCHMライブラリに付属するユーティリティです。OSに依存せず、私の知る限り、OS X/PowerPC64で正常に動作します。
HTMLヘルプは、表示にIEを使用します。したがって、Webブラウザを使用してmk:@MSITStore:c:\ WINDOWS \ Help \ htmlhelp.chm::/apiref.htmのようなURLに移動する必要があります。ファイルが存在しない場合は、404ステータスコードのDWebBrowserEvents2::NavigateErrorが発生します。Microsoftはセキュリティ上の懸念から使用を制限しているため、最新バージョンのWindowsでは他のエラーが発生する可能性があることに注意してください。