*[PPx]ハッシュファイル変換(BOM除去) メモ

UTF-16/UTF-32ではエンディアンを区別するためバイト順マーク
(BOM)がファイル先頭3Byteに付与されるらしい。
UTF-8では本来必要ないのだが慣例(?)的に付与するプログラムが
あるそうでUTF-8におけるBOMの取り扱いは規定がないらしい。
#wikipedia調べ。自分の理解が間違ってるかも

ADODB.Streamを使ってUTF-8で書き出すと無条件にBOMが
付与されるとのこと。

landisk HDL4-Gのmd5sumはBOM有無に影響されないようだが
何かの時のためにBOM除去ルーチンを入れておくことに。
参考にさせてもらったのはこちら。
http://d.hatena.ne.jp/replication/20091117/1258418243

要は一旦出力した後バイナリモードで再オープンし
開始オフセット+3でBOMをすっ飛ばす。

・
・ ハッシュファイル変換
・
// ファイル出力
StreamObjO.SaveToFile(OFileName,2);  // 1:新規作成(あるとエラー) 2:ある場合は上書き
// ストリームクローズ
StreamObjI.Close();
StreamObjO.Close();

// BOM除去
StreamObjI.type = 1;
StreamObjO.type = 1;
StreamObjI.Open();
StreamObjO.Open();
StreamObjI.loadFromFile(OFileName);
StreamObjI.Position = 3;
StreamObjO.Write(StreamObjI.Read());
StreamObjI.Close();
StreamObjO.SaveToFile(OFileName,2);
StreamObjO.Close();
PPx.Quit();