htmltodat Ver 0.11.12  Copyright(C) 2002-2018 by mukiyu 【概要】 2ch形式のHTMLをdat形式に変換するソフトです。 過去ログ保存サイト等を見ていて、 「このスレを2ch用ブラウザで読みたい。でもdat形式じゃないしなぁ」 と思ったことが何度かあって(レス番ポップアップが使えるだけでも便利ですし)、 都度スクリプト書いて変換したりしていたのですが、暇なときにプログラムにして みました。まあ、ただの雑プロです。しかも自分で使うことしか考えてなかった のでUIはかなり最悪ですw 基本的な機能は、HTMLソースをperl5相当の正規表現を使ってdat形式のファイルに 変換することです。しかし、HTMLの形式はサイトによってほんとまちまちなので、 完全に自動でとはいきません。なので、正規表現を都度指定or編集してから変換する ような方式になっています。 よって、正規表現がわからないと使えないと思います。 また、HTML、および2ch形式のdatファイルに関するある程度の知識も必要です。 また、datファイル以外の情報ファイル(idxファイル等)を生成する機能はありません。 必要であれば自力で何とかしてください。 (多くのブラウザでは自動もしくは半自動で生成できるようです) 【インストール関連】 適当にフォルダを作って、全ファイルをそこに解凍するだけです。 アンインストールは全ファイル(またはフォルダごと)を削除するだけです。 レジストリは使用していません。 バージョンアップの際は、基本的にはexeファイルと、readme.txtファイルのみ上書き してください。 ・0.8.21以前からバージョンアップする際にはbregexp.dllも解凍し直してください。 ・0.8.19以前からバージョンアップする際にはnkf32.dllも解凍してください。  OSが98系の場合は「98用」以下のnkf32.dllを使用してください。 ・バージョン0.8.19には不具合があるため使用しないでください  また、バージョン0.8.19で使用していたnkf.exeも不要になりましたので削除して  かまいません。 ・バージョン0.11.10よりSSL/TLSに対応したため、OpenSSLの ライブラリが必須になりました。  http://indy.fulgan.com/SSL/ の openssl-ほにゃらら-i386-win32.zip の一番新しいやつを  ダウンロード・解凍して libeay32.dll と ssleay32.dll をhtmltodat.exeと  同じフォルダーにコピーして下さい。  (OpenSSLのライブラリは最近いろんなプログラムで使われているので  Windowsのシステムフォルダに置くよう推奨したほうがいいのかな?  また、頻繁に更新されているライブラリなので最新の情報をウォッチしておく必要も  あると思われます) ※例外がある場合はこのドキュメント、およびサポート掲示板 (http://jbbs.livedoor.jp/bbs/read.cgi/computer/1929/1038588508/) で告知します。 regexps.txtは原則として自分で育てていくことになります。 【基本的な使い方】 1.「URL」欄に変換したいスレのURLかファイル名を入力して「HTML取得」ボタンを   押します("http://"で始まるものはURL、以外はファイル名と判断します)。   エラーがなければ「HTMLソース」欄に取得したHTMLソースが表示されます。   「HTMLソース」欄は編集可能なので、ブラウザの「ソースを見る」で表示された   ソースを直接コピペするなどしてもOKです。    ※SJISでの保存を前提にしているので、ソースのcharsetがSJIS以外の場合は   「ソース文字コード」を選択して「->SJIS変換」ボタンを押して変換してください。   ※↑v0.6.0から文字コード自動判別機能をつけたので、変換ボタンを押す必要は    基本的にはなくなりました。   ※↑v0.6.2から文字コード自動判別機能をオプションにしました。通常はONのまま    でいいと思いますが、自動判別がうまくいかないHTMLの場合OFFにしてください。 2.「正規表現」欄に入力します。後で詳しく書きますが、直接入力するのは面倒   なので、一覧から選択できるようにしています。「一覧表示」ボタンを押して   正規表現一覧ウィンドウを表示し、適当なものを選択して表示させます。 3.必要であれば「変換オプション」ボタンを押してウィンドウを開き、   各オプションに適切に入力します。 4.「変換開始」ボタンを押します。   「dat変換結果」欄と右側のプレビュー欄を確認して、それなりに正しく(?)   変換できているようならば、「dat保存」ボタンを押してdatをファイルに保存   します。   うまく変換できないときは正規表現を再選択したり編集したりしてください。   (次項参照)   ※「取得即変換」チェックボックスをONにしておくとHTML取得後に自動的に変換    処理を開始します。正規表現や変換オプションが確定している場合にお使い    ください。   ※dat保存はデフォルトでは文字コードSJISで保存しますが、EUCやUTF-8で保存    する必要がある場合は「保存文字コード」を変更して下さい。   ※保存ファイル名は、URLまたはファイル名に9〜10桁の数字が含まれていれば    それを使用し、ない場合は変換結果のレス1の投稿日時より変換しています。    レス1の投稿日時に秒が表示されていないとか、西暦以外の暦が使用されている    場合、本来のdat名と食い違ってくる可能性があります。 ※お試し用のファイル(sample.html)を添付してますので、試してみてください。  (正規表現も「sample」を選択する) ※複数のHTMLをいっぺんに変換する一括変換機能もあります(後述)。 ※HTML取得時に指定できる受信オプションがいくつかあります(後述)。 ※v0.10.0以降、上記のような正規表現一覧からの選択ではなく、より機能包括的な  「prmファイル」と呼んでいるものをサポートしています(後述)。 ※v0.11.0以降、標準では使用できなくしている機能がいくつかあります。  フォーム上の何もない領域をダブルクリックすると使えるようになる場合があります。 【正規表現関連】 HTML->dat変換には、Baba 氏作成のBREGEXP.DLL(perl5互換正規表現エンジン)を 利用しています。(http://www.hi-ho.ne.jp/babaq/) ※v0.9.0より変更しています(後述)。 ※perl5正規表現の詳細についてはいろんなとこに資料があるので省略します。  一部非互換の部分があるのでhttp://www.hi-ho.ne.jp/babaq/bregexp.html  も参照ください。 正規表現を作成する際は、m演算子を使ってm#hoge#の形式で $1:レス番号 $2:メール欄 $3:名前・トリップ $4:投稿日・ID $5:レス内容 となるように設定します。 ※一般的にはm/hoge/としますが、/はHTMLでは多用されるのでいちいちエスケープ  しなくていいようm#hoge#の形式にするのがよいでしょう。 ※変換後のdatの形式は、1レス1行で  名前・トリップ<>メール欄<>投稿日・ID<>レス内容<>スレタイトル(1レス目のみ)  の形になります。 ※これだけじゃ説明足りないだろうなーと思うので、別テキストに補足説明をつけ  ました。 htmltodatではregexps.txtというファイルに 説明=正規表現文字列 の形式で正規表現の一覧を管理しています。サンプルもいくつか入れているので 参考にしてください(但しサンプルそのものはかなり適当なのでそのまま使えるとは 期待しないでください ^^;)。 かなり貧弱ですが正規表現の一覧を編集する機能もあります。 ・メインウィンドウでの機能  「正規表現」欄の上に「一覧表示」「追加」「変更」のボタンがあります。どれを  押しても正規表現一覧ウィンドウが表示されます。  「一覧表示」:単に正規表現一覧ウィンドウを表示します。       最初に正規表現を選択する場合や、別の正規表現を選択しなおす場合に       使用します。  「追加」:現在「正規表現」欄に表示している正規表現を正規表現一覧に新規追加       します。       一覧から選択して編集した後、その編集結果を、選択したものとは別に       新たに一覧に追加したい場合に使用します。また、「正規表現」欄に直接       入力したものを一覧に追加したい場合にも使用できます。       「説明」欄は空で表示されるので保存する前に適当に入力してください。  「更新」:一覧から選択して編集した後、その編集結果をそのまま選択したものに       反映させたいときに使用します。       一覧から選択したものではない場合、「追加しますか?」のメッセージを       出します。OKを押すと「追加」と同じ動作をし、キャンセルを押すと何も       しません。           ・正規表現一覧ウィンドウでの機能  regexps.txtの内容を表示したり編集するためのウィンドウです。    「選択」:現在選択されている行の正規表現をメインウィンドウの「正規表現」欄       に表示します。  「削除」:現在選択されている行を一覧から削除します。  「保存」:現在表示中の正規表現一覧をregexps.txtに保存します。  「閉じる」:何もせず正規表現編集ウィンドウを閉じます。  一覧ウィンドウ上での編集も可能です。詳しい説明は難しいですがまあF2キーとか  使えばなんとかなるでしょう。 ※regexps.txtファイルに保存を行うのは正規表現一覧ウィンドウで「保存」ボタン  を押す場合だけですので注意してください。  プログラム終了時にも自動保存はしません。 【受信オプション】 以下のオプションを指定できるウィンドウを開きます。  「proxy」  サーバ名(またはIPアドレス):ポート番号 の形式で指定できます。  また、Proxy入力欄横の「追加」ボタンを押すと指定したProxyがProxy.txtという  ファイルに保存され、次回使用時に一覧から呼び出すことが出来ます。  「HTTPヘッダの追加」  HTTPリクエストヘッダに任意の行を追加するためのものです。  例えば  Cookie: text=dat<>1<>0<>false<>mycss=<>0<>0<>3000<><><><>  User-Agent: Monazilla/1.00(htmltodat/0.8.9)  のような感じでヘッダに含めて送信したい内容をそのまま指定します。  また、変換オプション(後述)の前処理等と同様、保存・呼び出しが可能です。  (拡張子は'.hdr')    「URLの変換」  「URL」欄に入力されたURLでそのまま取得するのではなく、何らかの変換を加えた  後のURLで取得したい場合に指定します。  変換方法の指定は、後述の前処理等と同様、sコマンドで指定します。また、これ  も保存・呼び出しが可能です。(拡張子は'.ucv') 【表示レス】 表示するレスの開始〜終了を指定します。 変換処理にはそれなりに時間がかかるので、シミュレーション的にいろいろ正規表現 を変更する場合に使うと便利です。 【変換オプション】 以下のオプションを指定できるウィンドウを開きます。 このウィンドウはモーダルではなくモードレスなので開いたままでもメインウィンドウ の操作をすることが可能です。  「dat変換をしない(前処理のみ行う)」  その名のとおり、「変換開始」ボタンを押してもdat変換は行いません。  前処理(後述)のみ使いたいような場合にお使いください。  ※v0.11.2より、前処理のみ行った結果を「dat変換結果」欄に表示するようにしました。   この結果をそのまま保存する事もできます。    「アンカー削除」:  dat変換時に、レス本文中にあるアンカータグ()を削除します。  ブラウザによっては、変換元のHTMLにアンカータグがついていると>>1のような形式  のポップアップがうまくいかないことがあるので、削除する機能をつけてみました。  念のためオプションにしていますが、たいていの2ch用ブラウザには>>1のような  リンクにはアンカータグがなくても自動で補う機能がついているようなので、通常は  ONのまま使用して問題ないと思います。  「beコード削除」:  dat変換時に、投稿日・ID欄中にあるHTMLタグ(通称beコード)を全て削除します。  beコードの扱いはブラウザによって異なるようなので適宜ON/OFFしてください。  ※注:このオプションは作者がまだbeコードの取り扱いを把握していなかったときの   暫定対応でつけたもので、v0.8.6よりbeコード自体のHTML->dat変換を自動で行う   よう変更しているので、意識する必要は基本的になくなっています。  「透明あぼーんを補う」  dat変換時に透明あぼーん(レス番号の飛び)を検出したとき、変換結果のdatに  「透明あぼーんかも」という行を自動的に必要な数だけ生成します。  「プレビューを表示しない」  dat変換時にプレビュー欄を更新しません。  これにより、変換速度が速くなるので、変換経過を気にする必要のないスクリプト等  からの変換の際にはONにすると効率が改善するかもしれません。  「変換結果式指定」:  変換結果のdat形式は、デフォルトでは  $3<>$2<>$4<>$5<>  (名前・トリップ<>メール欄<>投稿日・ID<>レス内容<>)  となるのですが、HTML上でメール欄と名前欄が位置が逆転するようなケースもあるので  そういう場合に形式を変更するために指定します。例えば  $2<>$3<>$4<>$5<>  のように指定します。  もちろん正規表現自体もそれに合わせたものにする必要があります。  ※注:区切り文字は「<>」以外は使用しないでください。     (カンマ区切り等にしても正しく動作しません)  「前処理」:  dat変換の前に何らかの加工が必要なケースで指定します。  perl5のsコマンド(置換)の形式で s#変換前#変換後# のような形式で指定してください。  この処理は変換前のHTML全体に対して作用します。必要であればgスイッチ等を使用して  ください。  また、変換の過程をファイルに出力するために、w ファイル名 の形式のコマンドが使用  できます(例:w debug.txt)。sコマンドのデバッグ用等に使ってください。  また、s、w以外で始まる行は無視されますので、これを逆用してコメントを書くことも  できます。    ※前処理のsコマンド中では置換ワード$server,$boardが使えます。   これらのワードは、変換オプションの「$server」「$board」の入力値と置き換わって   処理されます。  ※前処理のwコマンドではファイル名に置換ワードが使えます。   使えるワードは$FILE,$ORGFILE,$PLAINFILE,$SELECTFILEの4種で、元のファイル名   から拡張子を取り除いたものに置き換わります。これらは、保存フォルダの形式により   使用法が異なります。基本的には w $FILE.dbg のような形式で使用します。   ・$FILE:ファイルの保存フォルダがhtmltodatのインストールフォルダになります。   ・$ORGFILE:ファイルの保存フォルダが元ファイルと同じフォルダになります。   ・$PLAINFILE:保存フォルダを付加しません。なのでこれを使う際には絶対パスを    指定して下さい。(例:w c:\test\$PLAINFILE.dbg)   ・$SELECTFILE:自動でファイル保存することはせず、ファイル保存ダイアログを出し    ます。元のファイル名と変えたい場合等に指定して下さい。  ※これらの置換ワードは基本的に元データがファイルの場合のみ利用可能です。   (元データがURLの場合保存ファイル名を厳密に確定することが難しいため)   但し、$SELECTFILEだけは元データがURLであっても利用可能です。  ※保存する文字コードをSJIS以外にしたい場合は w コマンドの変わりに we コマンド   (EUCの場合)もしくは wu コマンド(UTF-8の場合)も利用できます。   (例:wu hoge.txt))  「後処理」:  dat変換の後に何らかの加工が必要なケースで、前処理と同様の形式で指定します。  指定の方法は前処理と同様です。  「変換結果式」「前処理」「後処理」は、「正規表現」欄と同様、「一覧表示」  「追加」「更新」のボタンで一覧から選択・保存できるようになっています。  使い方も「正規表現」欄のものとほぼ同様です。  (サンプルも多少つけていますので参考にしてください)    ※正規表現はregexps.txtの一個のファイルに保存されますが、変換処理式・前処理・   後処理については、一つのパターンを一つのファイルに個々に保存するようにして   います。   (実装が簡単だったからというのが主な理由ですが、エディタ等で修正したい場合   にも構造が簡単なのでやりやすいかと思います)   実際のファイル名は、サンプルを見てもらえればわかると思いますが、拡張子が   変換結果式:cvr   前処理  :bcv   後処理  :acv   となります。   名前を変えたい・削除したいときはhtmltodatを終了させた状態でエクスプローラ等   から直接変更してください。 【一括変換】 変換したい対象のファイルが複数あって、いっぺんに変換したい場合に使用します。 同じサイトの過去ログ集などで、同じ正規表現・charsetが適用可能なことが確認済みの 場合のみ使えます。 (同じサイトのログ集であってもサイト管理者が全て同じ形式でログを提供しておられる とは限りません。そこは自力でなんとかしてください) ※一括変換機能はローカルのファイルにのみ使用可能です。  「このサイトの過去ログを全部変換したい」ようなときに使いたい場合が多いかと  思うのですが、一旦ダウンロードソフト等を利用して適当なフォルダに保存してから  使ってください。 ・まず正規表現を指定します。 ・必要であれば「アンカー削除」等のオプションを変更します。  (メインウィンドウで変更されたオプションは全て一括変換にも適用されます) ・「一括変換」ボタンを押します。 ・変換元フォルダと変換先フォルダをそれぞれ指定します。  変換元フォルダの直下の拡張子.htmlまたは.htmのファイルが変換対象になります。  (それ以外の拡張子のファイルを変換したい場合は「変換対象拡張子指定」に入力  して下さい)  サブフォルダ以下は対象にはなりません。  変換結果は元のファイル名で拡張子が.datになって出力されます。  ※v0.7.3より、「dat名をレス1から取得」オプションをつけました。   これがONの場合、元ファイル名が9〜10桁の数字ならそれをそのまま使用し、そうで   ない場合にはレス1の投稿日時よりdatファイル名を決定します。   基本的にはONのまま使用して問題ないと思いますが、どうしても元ファイル.datで   保存する必要がある場合はOFFにして下さい。 ・変換元のファイルのcharsetがEUCまたはUTF-8の場合は「htmlの文字コード」を変更  します。  ※基本的には文字コード自動判別がONであれば指定は不要です。   自動判別がうまくいかないHTMLの場合のみ適切に指定して下さい。 ・変換先フォルダに同じファイル名が既にある場合に上書きしてよければ「既存時上書」  チェックボックスをチェックしてください。  チェックしないときは、同じファイル名がある場合は上書きしません。 ・「変換開始」ボタンを押すと変換処理を実行します。  ウィンドウ下部に変換結果が逐次表示されます。すべてのファイルを処理し終わると  「完了」と表示されます。 【subject.txt作成】 datファイルからスレタイトルとレス数を抽出してsubject.txtファイルを作成します。 ・「subject.txt作成」ボタンを押します。 ・datファイルのあるフォルダを指定します。  指定したフォルダの直下の拡張子.datのファイルが対象になります。サブフォルダ以下  は対象にはなりません。 ・subject.txtファイルを作成する対象フォルダを選択します。  「datファイルと同じフォルダ」または「datファイルの一つ上のフォルダ」のどちらか  を選択します。  これら以外の場所に作成したい場合は作成後手動で移動してください。 ・必要であれば「datの文字コード」「保存文字コード」を適切に指定して下さい。  デフォルトはどちらもSJISです。  datをEUCで作成したとか、subject.txtをEUCで保存したいような場合に指定して下さい。 ・デフォルトでは改行コード「LF」で作成しますが「CRLF]にしたい場合はチェックを  付けてください。 ・旧形式のdat(区切り文字が「<>」でなく「,」)からsubject.txtを作成したい場合は  「旧形式のdatを対象にする」にチェックを付けてください。  ※旧形式と現行形式のdatを同時に処理することは出来ません。   フォルダを分ける等して対処してください。 ・「作成開始」ボタンを押すとsubject.txt作成処理を実行します。  ウィンドウ下部にdatからの変換結果が逐次表示されます。すべてのファイルを処理し  終わると「完了」と表示されます。 ※出力結果の並び順は指定できません。 【バッチファイルやスクリプトから動かす】 htmltodatは起動時の引数を最大3個指定することができます。 これにより、バッチファイルや各種スクリプトから呼び出して半自動的に動作させることが 可能です。 ・1つ目の引数はURL、これが指定された場合、URLの項目に値をセットして起動します。 ・2つめの引数はパラメータファイル(prmファイル)名、この仕様は後述します。  これが指定された場合、正規表現・前処理等の項目に値を自動でセットし  HTML取得→変換まで行います。 ・3つめの引数は出力datファイル名、これが指定された場合、変換結果をそこに出力し  htmltodatは終了します。 ・パラメータファイル(prmファイル)の仕様  現時点では  「正規表現」  「受信オプション」の全項目  「変換オプション」の全項目  について指定ができるようになっています。  指定方法は、    正規表現=read.cgi7.00?  変換結果式=メール欄逆転  ・・・    のような形式で各項目に設定する選択項目を指定して列挙します。  また、    前処理: ※長くなってきたので不要になった行を削除  # スレタイ補正  s#()(.*?) \| \S*?()#$1$2$3#ik  # ガラガラを適当に除去  s###igk  ・・・    みたいな感じでサポート掲示板に書かれてるようなものをそのまま記述する方式でも  可能です。  「変換オプション - 透明あぼーんを補う」のようなチェックボックスの値を設定する  場合は    透明あぼーんを補う:  true    のようにしてください。(true または false と書く)    また、  コメント:   これはコメントですなんたらかんたら・・・  のようにコメントを記述することもできます。    サンプルでsample.prmというのをつけてみたので参考にしてください。    また、prmファイルはコマンドで指定できるだけではなく、手動で読込・保存する  ことも可能です。  これにより、従来個別に指定していた正規表現・前処理・後処理等の記述を  一括で管理する事が可能になります。  htmltodatの最下段の「prmファイル(R)」というボタンを押すと  「prmファイルの読み書き」ウィンドウが表示されます。  ・「prmファイル内容」欄には、変換オプションや正規表現で指定している内容が   自動的にprmファイルの形式に整形されて表示されます。  ・この内容をそのまま保存する場合は「保存」ボタンを押してください。  ・別のprmファイルを読み込みたい場合は「読込」ボタンを押してください。   読み込んだ内容は自動で変換オプションや正規表現に反映されます。   また、prmファイルをこのウィンドウにドラッグ&ドロップで読み込むことも   できます。  ・「prmファイル内容」欄には、例えばサポート掲示板に書かれたような内容を   コピー&ペーストすることも可能ですし、直接編集することもできます。   この場合は編集内容を自動で反映できないので、「適用」ボタンを押して反映させて   ください。 ・変換エラーの場合  スクリプト等から実行して途中エラーになった場合(正規表現や前処理が正しくない  等)、通常の実行のようにエラーダイアログが出せません。  その代わりhtmltodatのフォルダに error.txt というファイルが作成されますので  変換がうまくいかなかった場合はこのファイルの内容を確認して適宜対応して下さい。 【その他】 ・「横スクロールあり」のチェックボックスは、チェックされていれば横スクロール  バーが出てスクロールできるようになり、チェックを外せばスクロールバーが  なくなり右端で折り返すようになります。「HTMLソース」欄と「dat変換結果」欄で  デフォルトが違うのはそれぞれの用途に合わせてと考えてのことですが、好みで  変更してください。  ※「横スクロールあり」を切り替えたとき、左端が1カラム分空いたり空かなかっ   たりすることがありますが、これは使用しているコンポーネントの仕様のよう   です。   また、フォントサイズがいきなり変わることがあるかもしれません。これは   コンポーネントのバグくさいのですが再現条件が全く不明(ON,OFFを繰り返すと   元のサイズに戻ったりします)なので許してください。 ・メインウィンドウ右側のプレビュー欄にはスキンを適用できます。フォントを変え  たい場合などに使用してください。  使えるファイルはheader.html,res.htmlの2種類です。exeと同じフォルダに置いて  ください。  使えるキーワードは以下です。    :タイトルに置き換わります。header.htmlでだけ利用できます。   <NUMBER/> :レス番号に置き換わります。res.htmlでだけ利用できます。   <NAME/>  :名前・トリップに置き換わります。res.htmlでだけ利用できます。   <MAIL/>  :メール欄に置き換わります。res.htmlでだけ利用できます。   <DATE/>  :日付・IDに置き換わります。res.htmlでだけ利用できます。   <MESSAGE/>:レス内容に置き換わります。res.htmlでだけ利用できます。  スキンファイルは変換処理の都度読み込むので、変更しても再起動する必要は  ありません。 ・dat変換中にレス番号の飛びを検出した場合、変換後に「変換警告」の  ウィンドウが表示され、「レスn-mの間が飛んでいます」と表示されます。  ただ、レス番号の飛びの検出は正規表現が正しくない場合にも起こり得るので  元HTMLおよび正規表現の確認をお願いします。  元HTML上で実際飛んでいる場合は、「変換オプション」の「透明あぼーんを  補う」を指定すると2ch用ブラウザ上での表示は一応辻褄が合うようになります。 【著作権等】 ・このプログラムはDelphi6 Personal SP1を使用して作成しています。  http://www.borland.co.jp/ ←もうアクセスできません  最新のアップデートファイル?↓  http://edn.embarcadero.com/article/38607 ・HTTP通信についてはIndy9.0.*を使用しています。  http://www.nevrona.com/Indy/  http://www.indyproject.org/downloads/Indy_9_00_17_src.zip  ※↑v0.11.10より、https://indy.fulgan.com/ にある Indy10   (現時点のバージョンは Indy10_5453)に変更しています。  これに伴い、OpenSSLのライブラリとして http://indy.fulgan.com/SSL/ にある   libeay32.dll と ssleay32.dll を利用するようにしました。 ・正規表現ライブラリに関しては前述しましたが Baba 氏  http://www.hi-ho.ne.jp/babaq/  のBREGEXP.DLLを使用しています。  ※↑v0.9.0より、K.Takata 氏   http://k-takata.o.oo7.jp/mysoft/bregonig.html  のbregonig.dllをbregexp.dllにリネームして使用しています。  また、これをdelphiから使うためのユニットとして 武内 修 氏  http://www2.big.or.jp/~osamu/  のBRegExpユニットを利用しています。ただ、バージョンの違いかコンパイルエラー  が出たので一部修正しています。 ・EUC<->SJIS変換に EarthWave Soft(IKEDA Takahiro) 氏のjconvert.pasを使用  しています。現在行方不明?  ※↑v0.7.1より、Open Jane Projectの◆184NBKmVW6 氏のjconvert.pasに変更   しました。   http://www.geocities.jp/janeiyayo/ ・UTF8<->SJIS変換に、M&I(INOUE,masahiro) 氏のutftosjis.pasを使用しています。  http://homepage3.nifty.com/m-and-i/  ※↑Ver 0.8.20よりnkf32.dllを使うよう変更しました。  http://hp.vector.co.jp/authors/VA007219/  また、これをdelphiから使うためのユニットとして Fumio KAWAMATA 氏  http://d.hatena.ne.jp/Fumio_Kawamata/20090802/1249187823  のnfkユニットを利用しています。 ・HTMLソース等の表示に Hidemi Oya 氏の拡張 Memo & RichEdit コンポーネント  Version 2.00 を使用しています。  http://home1.infonia.ne.jp/~delphian/delphi/compo/labeledt.html  (↑は行方不明なので http://groups.yahoo.co.jp/group/hide-lib/ のほうが  いいかなあ) ・gzip解凍については Jean-loup Gailly and Mark Adler のzlib Ver 1.2.3  http://www.zlib.net/  および Open Jane Projectの◆184NBKmVW6 氏の gzip_delphi2.zip  http://www.geocities.jp/janeiyayo/  を使用しています。  また、利用に当たってはJaneおよびギコナビのソースを参考にさせて頂きました。  ※↑v0.11.10より、Indy10にある IdCompressorZLib コンポーネントを利用するよう  変更しました。 上記のモジュール・コンポーネントについてはそれぞれの使用許諾を参照ください。 このプログラムを使って発生した損害に関しては、一切の責任を負いません。 htmltodat自体の使用、配布に制限はありませんが、bregonig.dllおよびnkf32.dllに 関してはライセンス上若干の縛りがあります。zipファイルに同封しているbregonigDoc およびnkfDocフォルダ配下のドキュメントを一緒に配布すれば大丈夫だと思います。 動作の保証はありません。 動作を確認したOSは、Windows 8.1以降です。 【変更履歴】 0.11.12(2018/12/18)  ・0.11.10で導入したIndy10により発生した文字化け問題に対応。 0.11.11(2018/11/28)  ・0.11.4で取り入れたメール欄難読化のデコード処理を復活 0.11.10(2018/04/30)  ・SSL/TLSに対応した。 0.11.9(2017/10/29)  ・https://〜 のURLにとりあえず対処。SSL/TLSに完全対処できたわけではない。  ・2ch(5ch)でTITLEタグの形式が修正されたので対応。。 0.11.8(2015/05/28)  ・前バージョンの解像度問題の対処が不十分だったため再度修正。  ・User-Agentの変更。 0.11.7(2015/04/10)  ・解像度の低いディスプレイで使用する場合に画面下部が見切れてしまう問題の   対処として、スクロールバーを出せるよう修正。   また、それに伴いいくつかのフォームの位置・サイズ等の属性を修正。 0.11.6(2015/02/08)  ・前バージョンの「エディタで開く」機能に不具合があったので修正。 0.11.5(2015/02/03)  ・prmファイル作成時に、無駄な要素(デフォルトから変更していない   チェックボックスの内容)が含まれないようにする。  ・「HTMLソース」「dat変換結果」欄の内容をエディタで開く機能を追加。   (それぞれの欄の右クリックから指定) 0.11.4(2015/01/24)  ・2chのCloudFlare採用によるメール欄の難読化をデコードするよう修正。  ・Ver0.11.0で削除したコントロールのうち   「一括変換」「subject.txt作成」を復活。 0.11.3(2014/04/05)  ・表示の不具合を微修正 0.11.2(2013/11/10)  ・「変換オプション」-「dat変換をしない(前処理のみ行う)」をONにした場合、   前処理の結果を「dat変換結果」欄に表示するようにした。   (もちろんそれをそのまま保存することも可能)  ・「正規表現」欄内で改行ができるようにし、それをprmファイルに保存・読み出し   できるようにした。 0.11.1(2013/08/20)  ・変換オプションに「プレビューを表示しない」を追加。   これを指定すると画面右側のプレビュー欄が表示されなくなるが   変換速度は速くなる。 0.11.0(2013/08/08)  ・あまり使わないと思われるコントロールを削除(ダブルクリックで復活可能)。  ・パラメータファイルで「コメント:」を使えるようにした。  ・その他制御の漏れ等を微修正。 0.10.4(2013/05/12)  ・nkf32.dllの使用を再開。 0.10.3(2013/05/12)  ・nkf32.dllの使用を中止し、UTF-8→SJISの変換を0.8.18以前の方式に戻す。 0.10.2(2013/01/12)  ・パラメータファイル読み書き機能の不具合を再修正。 0.10.1(2013/01/06)  ・パラメータファイル読み書き機能の不具合を修正。 0.10.0(2013/01/05)  ・パラメータファイルを読込・保存するための機能を追加。  ・パラメータファイル内で、一行しか入力できない項目に複数行の指定をすると   挙動がおかしくなる不具合を修正。  ・スクリプト等から起動した場合の動作を若干修正。  ・その他ショートカットキーの漏れ等を微修正。 0.9.0(2012/12/01)  ・正規表現ライブラリを、オリジナルのbregexp.dllからbregonig.dllをリネーム   したものに変更。   これに伴い、変換エラーチェックの閾値を変更。 0.8.21(2012/11/28)  ・バッチコマンド化機能でパラメータファイル内で前バージョンではサポートして   いなかった項目を追加。 0.8.20(2012/11/26)  ・UTF-8→SJISの変換にnkf32.dllを使うよう変更。 0.8.19(2012/11/24)  ・バッチファイルやスクリプトから動かすための機能を追加。  ・UTF-8→SJISの変換にnkf.exeを使うようにした。 0.8.18(2010/06/20)  ・文字コード自動判別のロジックを若干見直し。   文字コードUTF-8のHTMLをSJISと判定してしまう不具合に対応した(つもり)。 0.8.17(2010/02/16)  ・文字コードUTF-8のHTMLに不正なUTF-8コードが含まれていた際エラーにしていた   のをエラーにならないよう修正。 0.8.16(2008/09/22)  ・HTML取得の際のUser-Agentを Monazilla/1.00〜 に修正。 0.8.15(2008/08/01)  ・本文中に「>>x」(xは数字)の文字列があったら「>>x」に変換するよう   修正。 0.8.14(2008/06/05)  ・変換オプションに「透明あぼーんを補う」を追加。  ・変換オプション「アンカー削除」で<a href〜>形式のタグしか削除してなかった   のを<a 〜>全般を削除するよう修正。 0.8.13(2007/09/17)  ・変換オプションの変換結果式が正しく作用しない不具合を修正。 0.8.12(2007/05/16)  ・変換オプションの前処理・後処理で不要な改行が含まれているとエラーになる   不具合を修正。  ・前処理・後処理欄等の使い勝手を少し修正。   マウスでしか選択できなかったのをキーボード操作で選択できるようにした。 0.8.11(2007/04/01)  ・受信オプション設定に「URLの変換」を追加。  ・変換オプション・後処理の仕様を変更。   出力結果のdat一行ずつに対して作用するようにしていたのを、出力結果全体   に対して作用するよう修正。   また、前処理と同様のwコマンドを追加。 0.8.10(2007/02/10)  ・gzip解凍の際に結果にゴミがついてしまうバグを修正。  ・受信データの最後が改行コードであった場合に、改行コードが欠落して   しまうバグを修正。 0.8.9(2007/01/20)  ・「proxy設定」ボタンを削除し代わりに「受信オプション」を追加。   proxy設定機能は受信オプション設定にまとめる。  ・受信オプション設定に「HTTPヘッダ追加」欄を追加。   Cookie,User-Agent,Authorization等のヘッダを任意に指定できるようにした。  ・subject.txt作成で、旧形式のdat(カンマ区切り形式)からもsubject.txtを   作成できるようにした。  ・特定の環境下で、フォームの内容が枠に収まらずスクロールバーが出てしまう   不具合を修正。 0.8.8(2006/12/03)  ・変換オプションに$server、$board入力欄を追加。   前処理スクリプト中に「$server」「$board」の文字が現れると   入力された値に置換してから処理する。  ・be前処理の考慮漏れを修正。  ・前処理「DUMPER.JPスレタイ除去」を差し替え 0.8.7(2006/10/21)  ・正規表現にマッチせずdatに変換できないレスがあった場合、警告ウィンドウを   出して該当レス番号を表示するようにした。 0.8.6(2006/08/26)  ・beコードの仕様変更に対応した(つもり?)。 0.8.5(2006/05/26)  ・「dat変換をしない」オプションを指定していたときに一括変換を行うと   元のファイル名.datで0バイトのファイルが作成されるバグを改修。 0.8.4(2006/05/25)  ・前処理のwコマンドの機能拡張。   置換ワードとして$FILE,$ORGFILE,$PLAINFILE,$SELECTFILEを追加。   (詳細はこのドキュメント参照)   また、保存文字コードを変更できるようwe(EUCで保存)、wu(UTF-8で保存)   コマンドを追加。  ・dat変換をしない(前処理のみ行う)オプション追加。  ・subject.txt作成で改行にCRLFを指定できるよう修正。  ・その他タブオーダーなど細かい変更。   0.8.3(2006/04/01)  ・投稿日が「2006/03/32」となっている場合、投稿日からスレッドキーを求める処理   が失敗しdat保存する際にエラーとなる場合があるので修正。 0.8.2(2006/03/03)  ・HTMLソース欄、正規表現欄、dat変換結果欄、変換オプションの前処理・後処理欄   に右クリックポップアップメニューを追加。  ・beコードのHTML->dat形式の変換を内部に取り込み。 0.8.1(2006/01/30)  ・文字コード自動判別機能を多少強化(metaタグでcharsetが指定されていなくても   ある程度自動判別出来るようにした)。  ・「EUC->SJIS」「UTF8->SJIS」ボタンを廃止。代わりに「ソース文字コード」の   コンボボックスと「->SJIS変換」ボタンに変更。  ・一括変換でhtm,html以外の拡張子も指定できるようにした。 0.8.0(2005/12/15)  ・Proxy設定機能を実装。  ・subject.txt作成、および一括変換で、フォルダ名のドラッグ&ドロップ機能を   追加。 0.7.4(2005/12/10)  ・dat変換結果欄を直接編集しても保存する際に反映されなかったのを、反映する   よう修正。 0.7.3(2005/12/08)  ・dat保存時のファイル名を決める際に、URLまたはファイル名に9〜10桁の数字が   含まれない場合、変換結果のレス1の投稿日時よりファイル名を取得するよう   修正。   また、一括変換時にはこの機能を使用するかどうか選択できるようチェック   ボックスを追加。  ・一括変換での文字コード指定をチェックボックスからコンボボックスに変更。  ・BREGEXP.DLLを同封するようにした。 0.7.2(2005/11/14)  ・EUCやUTF-8のdatに対応するため、subject.txt作成機能にも文字コード変換を   追加。  ・文字コード自動判別をオプションにしたので、一括変換でのEUC,UTF-8チェック   ボックスを復活。 0.7.1(2005/11/08)  ・SJIS<->EUC変換に使用するモジュールを変更し変換を高速化。 0.7.0(2005/11/07)  ・dat保存時に保存する文字コードをSJIS,EUC,UTF-8から選択できるようにした。 0.6.2(2005/11/06)  ・文字コード自動判別をオプションで指定できるよう修正。 0.6.1(2005/11/03)  ・変換前処理で改行コード(Enterキー)が入力できないバグを修正。  ・HTMLソース等で64kb(65,546バイト)以上入力できないバグを修正。 0.6.0(2005/10/28)  ・文字コード自動判別機能を実装。  ・取得即変換機能を実装。  ・変換前処理のちょっとしたデバッグ機能を実装。  ・変換前処理・後処理の保存時に不要な改行コードがついてしまうバグを修正。  ・その他細かい修正(URL欄でEnterキーを押せば取得動作をするようにした・   一括変換で変換中止ボタンを押してもそのファイルを処理中は中止できなか   ったので、メインの変換処理に割り込みをかけられるようにした) 0.5.0(2005/10/21)  ・変換オプション中の前処理・変換結果式・後処理をそれぞれファイルに保存・   一覧選択できるようにした。  ・使用しているzlibのバージョンを1.1.3→1.2.3に変更。  ・v0.4.2のエンバグ(ローカルHTMLが正しく読めない場合がある等)を修正。 0.4.2(2005/10/17)  ・HTTP受信時にgzip圧縮されたデータを受け取ると解凍するよう修正。  ・変換後処理の欄で改行文字やスペース文字を表示できるようにするのを忘れて   いたので修正。 0.4.1(2005/10/13)  ・変換結果式のセパレータが<>以外だと正しく変換できない不具合に暫定対応。 0.4.0(2005/10/13)  ・アンカー削除、beコード削除等を別ウィンドウで表示するよう修正。  ・メール欄逆転機能を削除。代わりに、より汎用的に対応できるよう、変換結果   式を指定できるよう修正。  ・変換前処理・後処理機能を実装。 0.3.0(2005/10/06)  ・beコード削除機能を実装。  ・名前欄とメール欄の位置が逆になっているHTMLに対応するため、メール欄逆転   機能を実装。  ・HTTP受信時にgzip圧縮されたデータを受け取るとエラーになるよう修正。 0.2.1(2005/09/30)  ・be鯖からの取得が「500 Internal Server Error」になってしまう不具合を   修正。  ・9x系のPCで動かすと正規表現欄やHTMLソース欄の右端が欠けてしまって   編集不能になる不具合を修正。 0.2.0(2005/09/27)  ・UTF-8→SJIS変換機能を実装。  ・HTTPステータス301,302等の時にエラーにせずリダイレクトするよう修正。  ・<title>タグに余分なものが含まれるときにスレタイトルが取得できない   不具合を修正。  ・UIの細かい改善(「URLまたはファイル名」欄でcntl+aで全選択できるよう   にした、ファイル名のドラッグ&ドロップができるようにした)。 0.1.6(2005/01/24)  ・html中にNULL文字(0x00)が含まれるとそれ以降のhtmlが表示できなくなる   不具合の対処として、GET直後にNULL文字を全て除去するよう修正。 0.1.5(2004/08/20)  ・html中にスレタイトル(正確には<title>タグ)が含まれない場合に、   プレビュー表示がおかしくなる不具合への対応。   ※但しこの場合、いずれにせよスレタイトルの情報は取得できないため、    自力でdat内なり情報ファイル内にスレタイトルを書き足す必要がある。 0.1.4(2003/12/04)  ・本文中に「>>x」(xは数字)の文字列があったら「>>x」に変換するよう   修正。   2chのread.cgiの仕様変更(?)により、>>x形式のリンクが>>xでなく   >>xそのままで出力されるようになってしまったため、ブラウザによっては   リンクであると認識できなくなる不具合への対応。 0.1.3(2003/09/27)  ・htmlの先頭が空行だった場合に、必ず「変換結果0行でした」のエラーに   なってしまうバグを修正。  ・「全然ヒットしない」のエラーチェックを多少甘めにした。 0.1.2(2003/05/21)  ・メインウィンドウからの正規表現一覧編集時の動作を少し修正。   一覧から選択して編集した場合しか「追加」ができなかったのを、一覧から   選択したものでなくても(例えば正規表現欄に直接入力したようなときも)   追加できるようにした。   また、一覧から選択したものでない場合に「更新」を押したとき、「追加」   と同様の動作になるようにした。 0.1.1(2003/05/16)  ・アンカータグ削除がうまくいかない場合があるバグを修正。 0.1.0(2003/04/21)  ・subject.txt生成機能を実装。  ・レス本文中のアンカータグ削除機能を実装。  ・エラーメッセージ等微修正。 0.0.7(2002/12/15)  ・ボタンの位置などを微修正。  ・「行大きすぎ」エラーのチェック位置を修正。 0.0.6(2002/12/05)  ・取得対象がURLの場合、HTML取得ボタンを連続して押すと「Connection closed   gracefully」のエラーになるバグを修正。  ・EUC->SJIS変換がうまくいかない場合があるバグを修正。但しHTMLソース欄に   直接貼り付けする場合はまだおかしい。 0.0.5(2002/11/25)  ・中途半端にマッチする正規表現を指定してしまうとエラーにならないし処理も   なかなか終了しなかったりするので、通常の変換処理も中止できるようにした。   この変更に伴い、変換経過がなんとなくわかるようにステータス表示を追加。  ・プレビュー画面の見栄えを変えられるよう、スキンを指定できるようにした。  ・HTMLファイルを選択するボタンをつけた。  ・保存時、保存ファイル名をデフォルト表示させるようにした。 0.0.4(2002/11/17)  ・拡張子.htmにも対応できるようにした。  ・一括変換ウィンドウの挙動がおかしかったバグを修正。  ・保存時、最後の改行が書き出されないバグを修正。 0.0.3(2002/11/16)  ・一括変換を中止できるようにした。あと、ショートカットの漏れの修正、   タブオーダーの修正、ちょっとチューニング等。   ※BREGEXP.DLLのバグ(マッチする文字列長が長すぎるとfatal errorを起こす)    があることがわかった。実用上はほぼ問題ないと思われるが、他に使える    コンポーネントがないかも調べてみる予定。 0.0.2(2002/11/14)  ・HTMLソース等の表示欄で、スペース文字や改行が表示されたほうが正規表現を   編集しやすいと思ったので、標準のTMemoから拡張コンポーネントに変更。   ただ、全角・半角スペース使いまくりのAAスレなんかだと、動作が笑うくらい   とろい。使い方が悪いのかな?また変更するかも。  ・一括変換を実装。 0.0.1(2002/11/03)  ・初版