Javascript 我该如何写一个“的方法”呢;退格“;文本文档中的一行

Javascript 我该如何写一个“的方法”呢;退格“;文本文档中的一行,javascript,text,siemens,wincc,Javascript,Text,Siemens,Wincc,我在使用javascript的WinCC unified中创建脚本,我有一些代码可以在文本文件中找到特定的3行并删除其中的值,它可以工作,但我也希望基本上删除整行,就像在文本行上没有文本时按backspace一样 代码 HMIRuntime.FileSystem.ReadFile(path, "utf8").then( function(text) { const lines = text.split('\n'); delete lines[noteNumber]; dele

我在使用javascript的WinCC unified中创建脚本,我有一些代码可以在文本文件中找到特定的3行并删除其中的值,它可以工作,但我也希望基本上删除整行,就像在文本行上没有文本时按backspace一样

代码

HMIRuntime.FileSystem.ReadFile(path, "utf8").then(
function(text) {
const lines = text.split('\n');
delete lines[noteNumber];
delete lines[noteNumber+1];
delete lines[noteNumber+2];
//HMIRuntime.Trace("lines:" +lines.join('\n')); 
FileSystem.WriteFile(path, lines.join('\n'),"utf8" )
});  
谢谢你的帮忙

我曾尝试过拼接,但现在读取.txt文件并将其数据写入HMI阵列的部分没有更新,并且不再读取值。读取.txt文件的代码在这里

HMIRuntime.FileSystem.ReadFile(path, "utf8").then(
function(text) {

 for (let i = 0; i < maxNoteNumber; i++) {
 HMIRuntime.Trace("Trace Message"+ text.split('\n',i));
 Tags('strDate[' + i + ']').Write(text.split('\n')[i*3]);
 Tags('strName[' + i + ']').Write(text.split('\n')[i*3+1]);
 Tags('strNote[' + i + ']').Write(text.split('\n')[i*3+2]);
 }
 }).catch(function(errorCode) {
 HMIRuntime.Trace("read error:" + errorCode)
 for (let i = 0; i <= maxNoteNumber; i++) {
 Tags('strNote[' + i + ']').Write('\n')//emty overwrite
  }
  //create a emtpy file 
  HMIRuntime.FileSystem.WriteFile(path," ", 'utf8').then(
  function() {
    HMIRuntime.Trace('Write file finished sucessfully');
    }).catch(function(errorCode) {
     HMIRuntime.Trace('Write failed errorcode=' + errorCode);
});
});
HMIRuntime.FileSystem.ReadFile(路径“utf8”)。然后(
功能(文本){
for(设i=0;i对于(让i=0;i
delete
从数组中删除属性不会阻止在
时使用该行。join
删除:

console.log(
[1,3]。加入('\n')

)
太好了,谢谢。我试过了,虽然它在文本文件中正确地执行了我想要的操作,但读取文本文件并将数据保存到HMI标记数组的部分现在已损坏,并且在我删除文本文件时不会更新。对不起,我是stackoverflow的新手,所以我不知道如何向您发送代码,以便您查看我如何读取文本文件。我只是回复我自己我猜因为我在这篇评论中没有足够的字符因为你删除了3行,听起来你可能想在再次读取文件之前将
maxNoteNumber
减量3?
maxNoteNumber-=3
?它实际上读取文件是正确的。但是当我没有“空白”时,它就会出错在读取的位置。所以当我打开文本文档并按住enter键,然后保存并重新加载我的程序时,它工作正常。但这真的很奇怪,因为我以前没有这个问题。你说的“bug out”到底是什么意思?发生了什么,以及您预期会发生什么?基本上,代码是这样工作的:每3行,它将数据读入3个不同的数组,用于日期、名称和注释。例如,第0-date[0]行、第1-name[0]行、第2-note[0]行、第3-date[1]行、第4-name[1]行……因此,我将有3个大的数据数组,可以从其“指定”点,如果该行上没有文本,它将返回我想要的空字符串。现在,当我使用拼接删除文本时,我希望每个数组值将其位置向后移动1。