📄 otworz_plik.m
字号:
end
fclose(fidw);
fclose(fid);
TRACEFORMAT=2; % new trace compatible with the second trace format
elseif length(findstr(l,' '))==11 | length(findstr(l,' '))==15
if TSTART==-1 & TEND==-1
if usun_linie_wired(plik,katalog,'temp')==1
[C1,C2,C3,C4,C5,C6,C8,C9,C10,C11,C12]=textread([katalog,plik],'%c%f%d%d%s%d%*7c%d%f%f%d%d%*[^\n]','delimiter',' ');
C5=char(C5);
else
[C1,C2,C3,C4,C5,C6,C8,C9,C10,C11,C12]=textread(strcat(katalog,'temp'),'%c%f%d%d%15c%d%d%f%f%d%d%*[^\n]','delimiter',' ');
delete(strcat(katalog,'temp'));
end
elseif TSTART~=-1 & TEND~=-1
fid=fopen(strcat(katalog, plik));
usun_czas(fid,katalog);
if usun_linie_wired('temp',katalog,'temp1')==1
[C1,C2,C3,C4,C5,C6,C8,C9,C10,C11,C12]=textread([katalog,plik],'%c%f%d%d%s%d%*7c%d%f%f%d%d%*[^\n]','delimiter',' ');
C5=char(C5);
else
ft=fopen([katalog,'temp1'],'r');
li=fgets(ft);
fclose(ft);
if li~=-1
[C1,C2,C3,C4,C5,C6,C8,C9,C10,C11,C12]=textread(strcat(katalog,'temp1'),'%c%f%d%d%15c%d%d%f%f%d%d%*[^\n]','delimiter',' ');
end
delete(strcat(katalog,'temp1'));
end
delete(strcat(katalog,'temp'));
end
TRACEFORMAT=1;
MAC=0;
else
%C1{i}=l(1); % r s d f
%C2{i}=l((sp(1)+1):(sp(2)-1)); % time
%c3{i}=l((sp(2)+2):(sp(3)-2)); % current node
%c4{i}=l((sp(3)+1):(sp(4)-1)); % agent router IFQ
%c5{i}=l((sp(5)+1):(sp(6)-1)); % ARP_CBK NRTE drop cause
%c6{i}=l((sp(6)+1):(sp(7)-1)); % packet ID
%c7{i}=l((sp(7)+1):(sp(8)-1)); % packet type
%c8{i}=l((sp(8)+1):(sp(9)-1)); % packet header size
%c9{i}=l((sp(9)+2):(sp(10)-1)); % expected time to send packet
%c10{i}=l((sp(10)+1):(sp(11)-1)); % sending node
%c11{i}=l((sp(11)+1):(sp(12)-1)); % receiving node
%c12{i}=l((sp(12)+1):(sp(13)-2)); % type ?
%c13{i}=l((sp(13)+1):(sp(14)-1)); % flags
%c14{i}=l((sp(14)+2):(sp1(1)-1)); % hop from
%c15{i}=l((sp(15)+1):(sp1(2)-1)); % hop to
%c16(i)=str2num(l((sp(16)+1):(sp(17)-1))); % TTL
%c17(i)=str2num(l((sp(17)+1):(sp(18)-2))); % next hop after forward
fid=fopen(strcat(katalog, plik));
if HEX==0
fidw=fopen(strcat(katalog,'temp'), 'wb');
elseif HEX==1
fidw=fopen(strcat(katalog,'temp'), 'ab');
end
l=fgets(fid);
spacje=0;
tint=TSTART~=-1 & TEND~=-1;
spnum=-1;
while l~=-1
event=l(1);
eventSFD=event=='s' | event=='f' | event=='D';
if l(2)==32 & (eventSFD | event=='r')
sp=findstr(l,32); % searching for a space
if tint
t=str2double(l((sp(1)+1):(sp(2)-1)));
if t<TSTART
continue;
end
if t>TEND
break;
end
end
spacje=0;
if sp(4)~=(sp(5)-1) % if there are 2 spaces between columns c4 and c5
sp=[1,sp]; spacje=1;
end
if eventSFD | (event=='r' & (l(sp(9)+2)~=48 | l(sp(10)+1)~=48 | l(sp(11)+1)~=48 | l(sp(12)+1)~=48))
if event=='D'
event='d';
end
if spacje==0
lw=[event, l(sp(1):sp(2)), l((sp(2)+2):(sp(3)-2)), l(sp(3):sp(4))];
else
lw=[event, l(sp(2):sp(3)), l((sp(3)+2):(sp(4)-2)), l(sp(4):sp(5))];
end
tmpspnum=sp(8)-sp(7);
if tmpspnum~=spnum
pkt=char(zeros(1, 15-tmpspnum)+32);
spnum=tmpspnum;
end
if length(findstr(l,'/'))>0 | length(sp)<15
lw=[lw, [l((sp(6)+1):(sp(7)-1)), l(sp(7):sp(8)), pkt, l((sp(8)+1):(sp(9)-1)), l(sp(11):sp(12))]];
% left: hop from, hop to, fwd node, seq#
if event=='s'
if HEX==1
ht=hex2dec(l((sp(10)+1):(sp(11)-1))); % hop to
if (ht>=4294967000)
ht='-1';
else
ht=num2str(ht);
end
else
if l(sp(10)+1)=='f'
ht=' -1 ';
else
ht=l(sp(10):sp(11));
end
end
if spacje==0 %go back because sp is moved
if HEX==0
fwrite(fidw, [lw, l((sp(2)+2):(sp(3)-2)), ht, '0 -1', 10], 'char');
else
fwrite(fidw, [lw, l((sp(2)+2):(sp(3)-2)), 32, ht, ' 0 -1', 10], 'char');
end
else
if HEX==0
fwrite(fidw, [lw, l((sp(3)+2):(sp(4)-2)), ht, '0 -1', 10], 'char');
else
fwrite(fidw, [lw, l((sp(3)+2):(sp(4)-2)), 32, ht, ' 0 -1', 10], 'char');
end
end
else % hop from, hop to, fwd, seq#
if spacje==0 %go back because sp is moved
if HEX==0
fwrite(fidw, [lw, l((sp(11)+1):sp(12)), l((sp(2)+2):(sp(3)-2)), ' 0 -1', 10], 'char');
else
fwrite(fidw, [lw, num2str(hex2dec(l((sp(11)+1):(sp(12)-1)))), 32, l((sp(2)+2):(sp(3)-2)), ' 0 -1', 10], 'char');
end
else
if HEX==0
fwrite(fidw, [lw, l((sp(11)+1):sp(12)), l((sp(3)+2):(sp(4)-2)), ' 0 -1', 10], 'char');
else
fwrite(fidw, [lw, num2str(hex2dec(l((sp(11)+1):(sp(12)-1)))), 32, l((sp(3)+2):(sp(4)-2)), ' 0 -1', 10], 'char');
end
end
end
else
sp1=findstr(l,':'); % node nr:port nr
if l(sp(14)+1)~='['
sp=[sp(1:13),sp(15:end)];
end
if length(sp)>18 % there is seq#
if l(sp(18)+1)=='['
if l(sp(19)-1)==']' % seq# [no]
c18=l((sp(18)+2):(sp(19)-2));
else %[ack no]
c18=l((sp(18)+2):(sp(19)-1));
end
else
c18=l((sp(19)+2):(sp(20)-1)); % ...] 1 [ack no]
end
if str2double(c18)==NaN % uncomment if necessary
c18='-1';
end
else
c18='-1'; % there is no seq#
end
fwrite(fidw, [lw, l((sp(6)+1):(sp(7)-1)), l(sp(7):sp(8)), pkt, ...
l((sp(8)+1):(sp(9)-1)), l(sp(11):sp(12)), l((sp(14)+2):(sp1(1)-1)), ...
32, l((sp(15)+1):(sp1(2)-1)), l(sp(17):(sp(18)-2)), 32, c18, 10], 'char');
end
end
end
l=fgets(fid);
end
fclose(fidw);
fclose(fid);
TRACEFORMAT=2;
%event, time, CN, AGT_RTR_IFQ, ID, type, size, ON, hopf, hopto, fwd_node, seq#
end
end
l=1;
if TRGRAPH==0
if TRACEFORMAT==2
fid=fopen([katalog,'temp']);
l=fgets(fid);
fclose(fid);
end
if l~=-1 & li~=-1
zmien_kolumny('temp',katalog);
end
end
if isempty(C2) | l==-1 | li==-1
bledy(1);
TRACEFORMAT=TEMPFORMAT;
else
if TSTART~=-1 & TEND~=-1 & strcmp(get(handles.timeint, 'Checked'),'on')
PLIKINT=1;
elseif strcmp(get(handles.timeint, 'Checked'),'off') & OPLIK==0
PLIKINT=0;
end
licz_stale;
afterload(handles, strcat(katalog, plik));
end
elseif plik~=0 & isempty(findstr(plik, '.mat'))==0
global C1 C2 C3 C4 C5 C6 C7 C9 C10 C11 C12 C13 FID
global TMAX LNOD PAKIETY TRACEFORMAT pole MAC PLIKINT PAKROZ rozpak
load(strcat(katalog, plik));
TSTART=-1;
TEND=-1;
afterload(handles, strcat(katalog, plik));
end
catch
bledy(7);
disp(lasterr);
end
function s=wytnij(l,x,lx,stop)
% trgraph
% cuts data after -x for traceformat=3
% stop character - space (32) or dot (46)
poz=findstr(l,x);
poz=poz(1)+lx; %2.05 takes the first occurrence
pozk=poz;
while l(pozk)~=stop
pozk=pozk+1;
end
s=l(poz-1:pozk-1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -