Scripting ランタイム ライブラリでバイナリの読み込み

ADODB.Stream の load メソッドはファイル全体を読み込むため、一部のデータをロードしたいときには使えない。
サイズの大きいファイルのヘッダ部のみを参照したい場合などには不向きである。
その代替案として浮かんだのが Scripting.FileSystemObject の openTextStream メソッド。
元々はテキストファイル向けに用意されたメソッドだが、部分的にファイルを読み込むことができる。
format に TristateTrue (Unicode) を指定すれば、
二バイト単位のバイナリデータを Unicode として擬似的に読み込ませることができる。

「これは使える!」と思ったのも束の間、すぐさま問題が発覚した。
このメソッドは Unicode のエンディアンを自動認識してしまう。
Windows なのだから UTF-16LE で固定してほしいところだが、
中途半端に賢い処理をしてしまうのだ。
つまりビッグエンディアンかリトルエンディアンかをプログラマは指定することができない。
どちらで読み込まれたかを確認する術がなければ、残念ながらバイナリデータとしての実用の目処は立たない・・・。


マッチする文字列がない場合に空文字列を受け取りたい


var text = 'foo';
var str = (text.match(/bar/) || [''])[0];

※空文字列の部分はデフォルト値の設定として利用できる。
最終更新:2009年08月05日 15:29