本帖最后由 somyyy 于 2017-6-21 23:52 编辑  
 
这个猛一看挺简单,不过试了试,中间有些地方不小心容易处理错; 
这里写了一个调用函数,附带测试的小程序,测试在TC6.2上通过,希望对你有帮助; 
考虑了空白行(程序里没有去除空白行,可以写程序去除空白行再处理也行) 
程序小窗口:                        处理完毕对话框: 
 
 
 
 
源文档内容:                                 处理后文档内容: 
 
 
 
 
主调函数如下: - 功能 删除节点(文件路径,节点标识_参)
 
 - 变量 标识符,文件行数,读取到的内容,返回值,需处理的起始行号,需处理几个行号,删了的内容
 
 - 标识符=字符串截取左侧(节点标识_参,1)//获取节点的主要特征标识符,[A]就获取最左侧的"[",用来寻找下一个节点位置
 
 - 如果(文件是否存在(文件路径))
 
 - 如果(字符串查找(文件路径,"\\"))
 
 - 文件路径=路径替换(文件路径)
 
 - //消息框("路径有\\字符,进行了字符串替换")
 
 - 结束
 
 - 文件行数=文件获取行数(文件路径)
 
 - for(var i = 0; i < 文件行数+1; i++)//找到节点所在行数
 
 - 读取到的内容=文件读指定行(文件路径,i)
 
 - 如果(字符串查找(读取到的内容,节点标识_参)>=0)
 
 - 需处理的起始行号=i
 
 - 跳出
 
 - 结束 
 
 - end
 
 - for(var j = 0; j < 文件行数+1; j++)//找到节点所在行下面一共几行到下一节点
 
 - 读取到的内容=文件读指定行(文件路径,需处理的起始行号+1+j) 
 
 - 如果(字符串查找(读取到的内容,标识符)>=0)
 
 - 需处理几个行号=j
 
 - 跳出
 
 - 结束
 
 - end
 
 - for(var k = 需处理的起始行号; k < 转整型(需处理的起始行号+需处理几个行号+1); k++)//从起始节点行到下一节点进行遍历删除处理
 
 - 文件删指定行(文件路径,需处理的起始行号)//因为每删除一行都会自动下一行上移,所以这里删除固定起始行就行
 
 - end
 
 - 否则
 
 - 消息框("路径:"&文件路径&"的文件不存在!")
 
 - 结束
 
 - 返回 "文件行数:"&文件行数&";起始行:"&需处理的起始行号&";共处理:"&需处理几个行号&"个行;"
 
 - 结束 
 
  
- 功能 路径替换(参数)//参考函数路径格式,不过测试反斜杠也是可以的,这里还是对照路径格式进行替换
 
 - 变量 返回值=字符串替换(参数,"\\","/")
 
 - 返回 返回值
 
 - 结束
 
  复制代码 
程序源文件打包:
 
删除节点.rar
(1.87 MB, 下载次数: 225)
 
 
 
 
   |