📄 compfile.m
字号:
function res=compfile(f1,f2,isdetail)
% Compare the contents of two files
% Syntax:
% res=comp(f1,f2)
% res=comp(f1,f2,isdetail)
% % Default:
% % isdetail=false
if(nargin==2)
isdetail=false;
end
lf1=dir(f1);
lf2=dir(f2);
if isempty(lf1)||isempty(lf2)
error(['File ' f1 ' or ' f2 ' nonexist!']);
end
if lf1.bytes==lf2.bytes
if lf1.bytes>5000000
disp([' Their bytes are equal: ' num2str(lf1.bytes)]);
res=false;
return;
end
fp=fopen(f1,'r');
s1=fread(fp,inf,'uchar');
fclose(fp);
fp=fopen(f2,'r');
s2=fread(fp,inf,'uchar');
fclose(fp);
s1=char(s1');
s2=char(s2');
if(strcmpi(s1,s2))
res=true;
else
res=false;
if(isdetail)
fdiff(f1,f2);
end
end
else
res=false;
if(isdetail)
fdiff(f1,f2);
end
end
function fdiff(f1,f2)
eval(['!fc /n /c ' f1 ' ' f2,'>tmp.txt']);
fp=fopen('tmp.txt','r');
tmp=fgetl(fp);
s1=[];
s2=[];
fi=0;
while 1
tline = fgetl(fp);
if ~ischar(tline), break, end
if strcmpi(['***** ' f1],tline)
s1=[];
fi=1;
elseif strcmpi(['***** ' f2],tline)
s2=[];
fi=2;
elseif strcmpi('*****',tline)
while 1
if isempty(s1)|isempty(s2), break, end
a=s1{1};
a(1:6)=[];
b=s2{1};
b(1:6)=[];
if(~strcmpi(deblank(a),deblank(b)))
break;
end
s1(1)=[];
s2(1)=[];
end
while 1
if isempty(s1)|isempty(s2), break, end
a=s1{end};
a(1:6)=[];
b=s2{end};
b(1:6)=[];
if(~strcmpi(deblank(a),deblank(b)))
break;
end
s1(end)=[];
s2(end)=[];
end
if(~isempty(s1))
disp(strvcat(s1{:}))
end
disp('-------------------------------------------')
if(~isempty(s2))
disp(strvcat(s2{:}))
end
disp('***************************************************************')
disp(' ')
disp(' ')
elseif fi==1
s1=[s1 {tline}];
elseif fi==2
s2=[s2 {tline}];
end
end
fclose(fp);
delete('tmp.txt')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -