我如何编写一种在文本文档中“退格”一行的方法

问题描述

我在使用 javascript 的 WinCC 统一中创建脚本,我有一些代码可以在文本文件中找到特定的 3 行并删除那里的值,它可以工作,但我也希望基本上删除整行,就好像你是当文本行上没有文本时按退格键。

代码

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);
});
});

解决方法

deleteing: 时,

.join 使用数组中的属性不会阻止使用该行

console.log(
  [1,3].join('\n')
);

const arr = [1,2,3];
delete arr[1];
console.log(
  arr.join('\n')
);

拼接要删除的线条:

lines.splice(noteNumber,3);

然后lines.join('\n')会给你你想要的。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...