1、确定需要被修改的参数名称及修改后的参数名称,新建参数名称一一映射excel表格,用matlab脚本读取出要被修改和修改后的名称。及改变参数名称的个数
[num,data] = xlsread('test.xlsx',3);
SearchData = data(:,1);
ReplaceData = data(:,2);
length = length(SearchData);
2、打开需要修改的DBC文件,读取DBC文件数据。读取出来的是cell数组,需要计算cell数组个数。
[fid,msg] = fopen('test.dbc','r');
fileData = importdata('test.dbc');
length1 = size(fileData);
length1 = length1(1,1);
3、打开并创建重写的dbc文件
fid1 = fopen('test1.dbc','w');
4、对需要修改的dbc文件进行遍历,在遍历的过程查找所有需要修改参数并替换修改后名称,然后数据重新写进新建dbc文件中。最后关闭所有文件。
for j=1:length1
zx_fileData(j,1)=fileData(j);
for i=1:length
zx_fileData(j,1) =strrep(zx_fileData(j,1), SearchData(i), ReplaceData(i));
end
fprintf(fid1,char(zx_fileData(j,1)));
fprintf(fid1,'\n');
end
fclose('all');
4、全部matlab脚本
clear;clc
[num,data] = xlsread('test.xlsx',3);
SearchData = data(:,1);
ReplaceData = data(:,2);
length = length(SearchData);
[fid,msg] = fopen('test.dbc','r');
fid1 = fopen('test1.dbc','w');
fileData = importdata('test.dbc');
length1 = size(fileData);
length1 = length1(1,1);
for j=1:length1
zx_fileData(j,1)=fileData(j);
for i=1:length
zx_fileData(j,1) =strrep(zx_fileData(j,1), SearchData(i), ReplaceData(i));
end
fprintf(fid1,char(zx_fileData(j,1)));
fprintf(fid1,'\n');
end
fclose('all');