TC官方合作论坛

 找回密码
 立即注册
查看: 1559|回复: 4

[已解决] 新手求教读写配置项如何快速删除节名称的问题?

[复制链接]
发表于 2017-6-21 19:10:33 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如何删除配置项中的节名称



[A]
1=CBABDA
2=YTUTJS
[B]
1=SDASDD
2=CHASDD
[C]
1=LLKLASD
2=RFAFASF


把指定的节名称删除

如,我想把 [A] 删除掉就变成
[B]
1=SDASDD
2=CHASDD
[C]
1=LLKLASD
2=RFAFASF

回复

使用道具 举报

发表于 2017-6-21 23:30:42 | 显示全部楼层
本帖最后由 somyyy 于 2017-6-21 23:52 编辑

这个猛一看挺简单,不过试了试,中间有些地方不小心容易处理错;
这里写了一个调用函数,附带测试的小程序,测试在TC6.2上通过,希望对你有帮助;
考虑了空白行(程序里没有去除空白行,可以写程序去除空白行再处理也行)
程序小窗口:                        处理完毕对话框:
456.bmp 789.bmp

源文档内容:                                 处理后文档内容:

测试内容

测试内容
0.bmp

主调函数如下:
  1. 功能 删除节点(文件路径,节点标识_参)
  2. 变量 标识符,文件行数,读取到的内容,返回值,需处理的起始行号,需处理几个行号,删了的内容
  3. 标识符=字符串截取左侧(节点标识_参,1)//获取节点的主要特征标识符,[A]就获取最左侧的"[",用来寻找下一个节点位置
  4. 如果(文件是否存在(文件路径))
  5. 如果(字符串查找(文件路径,"\"))
  6. 文件路径=路径替换(文件路径)
  7. //消息框("路径有\\字符,进行了字符串替换")
  8. 结束
  9. 文件行数=文件获取行数(文件路径)
  10. for(var i = 0; i < 文件行数+1; i++)//找到节点所在行数
  11. 读取到的内容=文件读指定行(文件路径,i)
  12. 如果(字符串查找(读取到的内容,节点标识_参)>=0)
  13. 需处理的起始行号=i
  14. 跳出
  15. 结束
  16. end
  17. for(var j = 0; j < 文件行数+1; j++)//找到节点所在行下面一共几行到下一节点
  18. 读取到的内容=文件读指定行(文件路径,需处理的起始行号+1+j)
  19. 如果(字符串查找(读取到的内容,标识符)>=0)
  20. 需处理几个行号=j
  21. 跳出
  22. 结束
  23. end
  24. for(var k = 需处理的起始行号; k < 转整型(需处理的起始行号+需处理几个行号+1); k++)//从起始节点行到下一节点进行遍历删除处理
  25. 文件删指定行(文件路径,需处理的起始行号)//因为每删除一行都会自动下一行上移,所以这里删除固定起始行就行
  26. end
  27. 否则
  28. 消息框("路径:"&文件路径&"的文件不存在!")
  29. 结束
  30. 返回 "文件行数:"&文件行数&";起始行:"&需处理的起始行号&";共处理:"&需处理几个行号&"个行;"
  31. 结束

  32. 功能 路径替换(参数)//参考函数路径格式,不过测试反斜杠也是可以的,这里还是对照路径格式进行替换
  33. 变量 返回值=字符串替换(参数,"\","/")
  34. 返回 返回值
  35. 结束
复制代码

程序源文件打包: 删除节点.rar (1.87 MB, 下载次数: 217)
回复 支持 反对

使用道具 举报

发表于 2017-6-21 23:50:01 | 显示全部楼层
代码繁琐,易出错,不建议这么做,建议用数据库,小项目请无视我
回复 支持 反对

使用道具 举报

发表于 2017-6-22 00:08:38 | 显示全部楼层
OOOO 发表于 2017-6-21 23:50
代码繁琐,易出错,不建议这么做,建议用数据库,小项目请无视我

确实读写文件次数有点多,可以一次性读入内容,不过处理也是繁琐;数据库或数组的方式处理同样繁琐,毕竟要考虑到空白行,都要计算行数,数组下标数,数据库条目数,一样都少不了,否则处理结果很容易出错。
感觉这样处理虽然麻烦了点,但是好控制也简单明了,让电脑自己算去吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-22 10:35:40 | 显示全部楼层
somyyy 发表于 2017-6-21 23:30
这个猛一看挺简单,不过试了试,中间有些地方不小心容易处理错;
这里写了一个调用函数,附带测试的小程序 ...

虽然复杂,勉强还行
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-19 10:33 , Processed in 0.041649 second(s), 26 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表