TC官方合作论坛

 找回密码
 立即注册
查看: 228|回复: 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上通过,希望对你有帮助;
考虑了空白行(程序里没有去除空白行,可以写程序去除空白行再处理也行)
程序小窗口:                        处理完毕对话框:


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


主调函数如下:
  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, 下载次数: 208)



回复 支持 反对

使用道具 举报

板凳
发表于 2017-6-21 23:50:01 | 只看该作者
代码繁琐,易出错,不建议这么做,建议用数据库,小项目请无视我
回复 支持 反对

使用道具 举报

地板
发表于 2017-6-22 00:08:38 | 只看该作者
OOOO 发表于 2017-6-21 23:50
代码繁琐,易出错,不建议这么做,建议用数据库,小项目请无视我

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

使用道具 举报

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

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

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

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

GMT+8, 2025-9-17 10:24 , Processed in 0.146311 second(s), 26 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

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