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