边读边写都不对
This commit is contained in:
parent
917af8fc32
commit
57187ada83
@ -159,8 +159,8 @@
|
||||
var len = '000000' + datalen
|
||||
len = len.substr(len.length - 6)
|
||||
|
||||
writeData(app, filename, 0, datalen + 3, len+data)
|
||||
PrintInfo("写入成功");
|
||||
writeData(app, filename, 0, datalen + 3, (len+data).toUpperCase())
|
||||
PrintInfo("写入成功 File");
|
||||
} catch (e) {
|
||||
PrintInfo(e.message);
|
||||
}
|
||||
@ -181,12 +181,28 @@
|
||||
}
|
||||
|
||||
function writeData(app, filename, offset, datalen, data) {
|
||||
if (datalen <= 1000) {
|
||||
var block = 512;
|
||||
if (datalen <= block) {
|
||||
SKFKEY.SKF_WriteFile(app, filename, offset, datalen, data);
|
||||
} else {
|
||||
// 先写入 1000
|
||||
SKFKEY.SKF_WriteFile(app, filename, offset, 1000, data.substr(0, 2000));
|
||||
writeData(app, filename, offset + 1000, datalen - 1000, data.substr(2000))
|
||||
// 先写入 block
|
||||
var cdata = data.substr(0, block * 2)
|
||||
SKFKEY.SKF_WriteFile(app, filename, offset, block, cdata);
|
||||
|
||||
|
||||
// 检查
|
||||
var result = SKFKEY.SKF_ReadFile(app, filename, offset, block);
|
||||
if(result == cdata){
|
||||
PrintInfo("写入成功" + offset);
|
||||
} else {
|
||||
PrintInfo("写入失败" + offset);
|
||||
PrintInfo("写入" + cdata);
|
||||
PrintInfo("读取" + result);
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
writeData(app, filename, offset + block, datalen - block, data.substr(block * 2))
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
|
||||
@ -224,29 +240,31 @@
|
||||
// }
|
||||
// }
|
||||
function readData(app, filename, offset, datalen) {
|
||||
// 最终结果
|
||||
let result = '';
|
||||
// 每次最大读取长度
|
||||
const MAX_READ = 1000;
|
||||
let result = SKFKEY.SKF_ReadFile(app, filename, offset, readLen);
|
||||
|
||||
// 循环分段读取(比递归更安全、更易读)
|
||||
while (datalen > 0) {
|
||||
// 本次读取长度:取 2000 和剩余长度的较小值
|
||||
const readLen = Math.min(MAX_READ, datalen);
|
||||
// // 最终结果
|
||||
// let result = '';
|
||||
// // 每次最大读取长度
|
||||
// const MAX_READ = 1000;
|
||||
|
||||
// 读取一段数据
|
||||
const chunk = SKFKEY.SKF_ReadFile(app, filename, offset, readLen);
|
||||
// // 循环分段读取(比递归更安全、更易读)
|
||||
// while (datalen > 0) {
|
||||
// // 本次读取长度:取 2000 和剩余长度的较小值
|
||||
// const readLen = Math.min(MAX_READ, datalen);
|
||||
|
||||
// 拼接到结果
|
||||
result += chunk;
|
||||
// // 读取一段数据
|
||||
// const chunk = SKFKEY.SKF_ReadFile(app, filename, offset, readLen);
|
||||
|
||||
// 偏移量前进
|
||||
offset += readLen;
|
||||
// 剩余长度减少
|
||||
datalen -= readLen;
|
||||
}
|
||||
// // 拼接到结果
|
||||
// result += chunk;
|
||||
|
||||
// 最终返回完整数据
|
||||
// // 偏移量前进
|
||||
// offset += readLen;
|
||||
// // 剩余长度减少
|
||||
// datalen -= readLen;
|
||||
// }
|
||||
|
||||
// // 最终返回完整数据
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user