gpt4 book ai didi

javascript - WIA.Vector 通过 Enumerator 返回一些不是数字的东西

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:39:43 26 4
gpt4 key购买 nike

访问WIA成员时Vector object直接使用 VectorItem property ,或使用默认属性,它们被 JScript 视为数字:

var v = new ActiveXObject('WIA.Vector');
v.SetFromString('This is a test', true, false);
for (var i = 1; i<= v.Count; i+=1) {
WScript.Echo(String.fromCharCode(v(i)));
}

但是,如果我使用 Enumerator遍历 Vector:

var enumerator = new Enumerator(v);
enumerator.moveFirst();
while (!enumerator.atEnd()) {
WScript.Echo(String.fromCharCode(enumerator.item()));
enumerator.moveNext();
}

我在 WScript/CScript 下得到以下错误:

enumerator.item() is not a number

typeof 返回unknown:

WScript.Echo(typeof enumerator.item());

大概是某种自动化类型(如 this question 中)仅显示为数字,这就是 typeof 返回 unknown 的原因。

如何将此值强制转换为“真实的”Javascript 数字?


更新

VBA 中的以下代码:

Dim v As New Vector, item As Variant
v.SetFromString "This is a test", True, False
For Each item In v
Debug.Print TypeName(item)
Next

打印

Byte
Byte
...

所以问题可以缩小到字节特定的自动化类型。

最佳答案

它适用于 IE11 的控制台。 (你的while循环有误)

代码:

console.log("- Vector -");
var v = new ActiveXObject('WIA.Vector');
v.SetFromString('This is a test', true, false);
for (var i = 1; i<= v.Count; i++) {
console.log(v(i), String.fromCharCode(v(i)), typeof v(i));
}

console.log("- Enumerator -");
var e = new Enumerator(v);
e.moveFirst();
while (!e.atEnd()) {
console.log(e.item(), String.fromCharCode(e.item()), typeof e.item());
e.moveNext(); // You need this
}

将打印到控制台:

- Vector -
84 T number
104 h number
105 i number
115 s number
32 number
105 i number
115 s number
32 number
97 a number
32 number
116 t number
101 e number
115 s number
116 t number
0 number
- Enumerator -
84 T number
104 h number
105 i number
115 s number
32 number
105 i number
115 s number
32 number
97 a number
32 number
116 t number
101 e number
115 s number
116 t number
0 number

关于javascript - WIA.Vector 通过 Enumerator 返回一些不是数字的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48757982/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com