87,910
社区成员
发帖
与我相关
我的任务
分享
var stream = new ActiveXObject("Adodb.Stream");
stream = new ActiveXObject("Adodb.Stream");
stream.Mode = 3
stream.Type = 1
stream.Open();
stream.LoadFromFile("F:\\data.mdt");
stream.Position = 0;
// 我想从流中读取 1 字节的数据, 但 JS 没有 byte 类型,要怎么处理,我要的是数值.
var c = stream.Read(1);
// 做过以下尝试:
WScript.Echo(c); // 弹出字符 'm'
WScript.Echo(c + "ff"); // 弹出 'm'
WScript.Echo("ff" + c); // 弹出字串 "ff"
WScript.Echo(typeof(c)); // 弹出 unknow
WScript.Echo(("" + c).charCodeAt(0)); // 弹出 -1.#ind, 这个 "-1.#ind" 是什么东东,希望也解释下.
WScript.Echo(c.charCodeAt(0)); // 报错 缺少对象
WScript.Echo((c + "").charCodeAt(0)); // 报错 缺少对象
// 而我希望得到的是字值 109;
// 要怎么才能拿到.
// 先谢谢大家了.
function alert(s) {
WScript.Echo(s);
}
var stream = new ActiveXObject("Adodb.Stream");
stream.Mode = 3;
stream.Type = 2; // 文本
stream.Open();
stream.LoadFromFile("F:\\data.mdt");
stream.CharSet = "Unicode";
var content = stream.ReadText(); // 将文件内容当成 Unicode 字符串全部读出
stream.Close();
// 读取一 byte 数据, 参数 pos 是位置;
function readAByte(pos) {
var uPos = parseInt(pos / 2);
var i = content.charCodeAt(uPos);
i = ((pos % 2)==0 ? i&0xFF : i>>>8); // 因一个 Unicode 字符有 2 Byte 当 pos 为偶数时取低位,否则取高位.
return i;
}
var pos = 0;
alert(readAByte(pos++));
alert(readAByte(pos++));
alert(readAByte(pos++));