【发布时间】:2013-01-16 11:18:06
【问题描述】:
我想更新包含属性值对的 txt 文件中的一行,其中一个属性位于方括号之间,其值在下面的行中。这是一个示例文件:除此之外,我想忽略以“#”开头的注释行。另一方面,如果我想将 cmets 添加到注释行怎么办?
#===========================
#===========================
[system]
# comment
programming
#===========================
[information]
#
application
在本例中,“系统”是一个属性,“编程”是它的值。同样,“信息”是另一种属性,而“应用”是它的价值。
我想用属性值对调用我的函数并更新 txt 文件中的相应值。到目前为止,我有以下内容:
fh = fopen(filename,'r');
fh= fopen(filename,'w');
while ~feof
line = fgetl(fh);
if(line(1) == '[') && (line(end) == ']')
value = lower(line(2:end-1));
然后我会将“值”与我的输入进行比较,以检查它是否与属性匹配。如果是这样,我应该用新输入更新下一行。最后我必须写入原始文件。
对于这个示例 txt,如何将“编程”一词更新为“系统信息”?
【问题讨论】:
-
您想用括号中的内容替换单词吗?您想替换所有出现的事件,还是只替换第一个?为什么不简单地使用记事本呢?
-
你好,Eitant。目的是更新属性的值(即下面的内容)(括号中的内容)。每当我得到带括号的行时,我应该能够更新(覆盖)该值。
-
多一点上下文真的很有帮助。你如何解析文件?你能显示一些代码(仅相关部分)吗?
-
抱歉错了:)
-
那么,如果我理解正确的话,括号中的单词是属性,括号中单词下面的内容是该属性的值?但我不明白你必须替换什么以及用哪个值。请提供更多背景信息,以便我们更好地帮助您。
标签: matlab