如何将属性_value对添加到txt文件并按字母顺序对它们进行排序

时间:2013-01-18 00:19:17

标签: matlab

我想在包含属性 - 值对的txt文件中添加属性 - 值对,并且属性应按字母顺序排序,其中属性在方括号之间,其值在下面的行中。这是一个示例文件:除此之外,我想忽略以'#'开头的注释行。

#
[system]
# 
programming 
#
[information] 
#
application

喜欢: -

function [] = updateFile( fileName,property,propertyValue )

% all inputs in strings
%
rfh = fopen( fileName, 'r' ); % read handle
tname = tempname(); % temporary file name
wfh = fopen( tname, 'w' )

在这个例子中,“系统”是一个属性,并且“编程”它的值。同样,'信息'是另一种属性,'应用'是它的价值。

我想用属性 - 值对调用我的函数,并使用新的属性 - 值对更新txt文件。

1 个答案:

答案 0 :(得分:1)

由于您要更新文件,因此应以“追加”模式打开它。您可以使用sort函数对数据进行排序。假设变量propertypropertyValue是单元格数组,您的代码看起来像这样

function [] = updateFile( fileName,property,propertyValue )

% all inputs in strings

fid = fopen(fileName, 'a' ); % file handle
[property_sorted,sort_index] = sort(property); % sort file
for count = 1:length(sort_index)
    fprintf(fid,'%s\n%s\n',property_sorted(count),propertyValue(sort_index(count)));
end

fclose(fid);

有关详细信息,请参阅排序文档(doc sort)。