前回はカンマ区切りのテキストファイルを用意しましたが、 フィールドの区切り文字は指定できます。 次のような"%"を区切り文字としたテキストファイルを用意した場合、
data/score.txt ------------------------------------------- 名前%性%国語:Int%算数:Int%理科:Int%社会:Int さくら%女%75%71%8%66 知世%女%62%2%89%60 小狼%男%51%28%70%31 千春%女%68%61%46%12 奈緒子%女%89%55%69%24 利佳%女%79%30%79%81FieldDelimプロパティを次のように設定すれば、 前回と同じように読み出せます。
<OBJECT ID="Score" WIDTH=0 HEIGHT=0 CLASSID="CLSID:333C7BC4-460F-11D0-BC04-0080C7055A83"> <PARAM NAME="DataURL" VALUE="data/score.txt"> <PARAM NAME="UseHeader" VALUE="true"> <PARAM NAME="FieldDelim" VALUE="%"> </OBJECT>
レコードの区切り文字はデフォルトでは改行ですが、
RowDelimプロパティを設定することにより
他の文字にすることができます。
リストから名前を選んでボタンを押すと、特徴フィールドの値が表示されます。
レコードセットオブジェクトを取得するときに、
フィルターをかけて必要なレコードだけのセットにすることができます。
レコードセットオブジェクトを取得する前に、
Filterプロパティを設定して、
並び替えのときと同じように必ずResetします。
Filterプロパティには次のような書式で文字列を指定します。
女でかつ算数の点数が50点以上の人の名前が表示されます。
さらに詳しい情報は、
Tablular Data Control (TDC)
にあります。
data/profile.txt
----------------------------------------
dummy,名前,特徴;
,さくら,ほえええ、あや、はにゃ〜〜〜ん、
など謎の言葉を発する。;
,知世,さくらちゃんの姿を
ビデオに収めるのが趣味。;
,ケロちゃん,いつもお腹を空かせていて、
すぐにおやつをねだる。;
<OBJECT ID="Profile" WIDTH=0 HEIGHT=0
CLASSID="CLSID:333C7BC4-460F-11D0-BC04-0080C7055A83">
<PARAM NAME="DataURL" VALUE="data/profile.txt">
<PARAM NAME="UseHeader" VALUE="true">
<PARAM NAME="RowDelim" VALUE=";">
</OBJECT>
上では、フィールドの区切り文字はデフォルトのカンマ(,)、
レコードの区切り文字はセミコロン(;)に設定しています。
改行文字が区切り文字でないと改行文字自体が値に含まれてしまうので、
dummyというフィールドを頭に付けています。
各レコードのdummyフィールドの値は改行文字になっています。
var name = list1.options[list1.selectedIndex].value;
Profile.Reset(); //最初のレコードに戻すため
var rs = Profile.recordset;
//敢えてFilterは使わずに回す
while(!rs.EOF) {
if(rs.Fields("名前").value == name)
break;
rs.MoveNext();
}
alert(rs.Fields("特徴").value);
function test3() {
Score.Filter = "性 = \"女\"";
Score.Reset();
var rs = Score.recordset;
var name = new Array();
var n = 0;
while(!rs.EOF) {
name[n++] = rs.Fields("名前") + "";
rs.MoveNext();
}
span2.innerText = name.join(",");
}
fieldname 比較演算子 value
比較演算子には次のものがあります。
= , <> , > , >= , < , <=
括弧とAND OR ( & , | ) でさらに複雑なフィルタリングができます。
Score.Filter = "性 = \"女\" & 算数 > 50";
Score.Reset();
・・・・
ADO Overview