|
看了ruirui5015[分享] jsa读写流,txt读写示例深受启发,但是其中的Get用法始终无法使用。
WPS JSA中对该函数的描述如下:
Get(FileNumber:String,VarName:?,RecNumber:?)
FileNumber:可用FreeFile 获得一个尚未使用的文件号
VarName:变量似乎是任意类型皆可。
RecNumber:记录数任意,可以忽略。
按照VBA中的解释,我的理解其中VarName似乎应该是一个Byte数组变量,而在JSA中没有Byte数组,只能使用ArrayBuffer和Uint8Array(Uint16Array)来代替Byte数组。我试着写了一个程序来读取二进制数据,但是Get函数根本取不到任何数据,请大家看看到底是什么原因?到底怎么样才能使Get函数发挥作用?如何解决这个问题?
function read(path) {
var no = FreeFile()
var fn = Open(path, no,jsBinary, jsRead, jsLockWrite, 10000)
sl=LOF(no)//文件长度字节数
var bf=new ArrayBuffer(sl)//设定存储缓存区
var zf=new Uint8Array(bf) //设定TypedArray读取数据
Get(no,zf)//这一句想获取文件内容存入TypedArray即zf变量中,运行了一下,zf存储变量没有Get到任何数据
Close(no)
Console.log(zf.join(""))//显示获取的文件内容
}
|
|