本帖最后由 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, 下载次数: 217)
|