1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
fid = fopen(filename);
start = 0;
PtNbPoint = 0;
while feof(fid) == 0
line = fgetl(fid);
if isequal(line ,'[Curve]')
start =1; % Le debut de la section a été trouvé
line = fgetl(fid);
end
if isequal(start ,1)
Pt = findstr(line,'=');
ID = line(1:(Pt-1));
if isequal(ID ,'number_waypoints')
number_waypoints = str2double(line((Pt+1):end));
start = 2; %cherche la premier occurence de position
end
end
if isequal(start ,2)
Pt = findstr(line,'=');
ID = line(1:(Pt-1));
if isequal(ID ,'pos')
start = 3; %La premiere occurence est trouvée
PtNbPoint = 1;
end
end
if isequal(start ,3)
% pos=(972.6858,435.4503,-598.5822)
disp(PtNbPoint);
Pt = findstr(line,'=');
tmp= ExtractValue(line((Pt+1):end));
InfoWaypoint(PtNbPoint,1,1) = str2double(tmp{1});
InfoWaypoint(PtNbPoint,2,1) = str2double(tmp{2});
InfoWaypoint(PtNbPoint,3,1) = str2double(tmp{3});
line = fgetl(fid);
% perp=(0.9491,-0.0010,-0.3151)
Pt = findstr(line,'=');
tmp= ExtractValue(line((Pt+1):end));
InfoWaypoint(PtNbPoint,1,2) = str2double(tmp{1});
InfoWaypoint(PtNbPoint,2,2) = str2double(tmp{2});
InfoWaypoint(PtNbPoint,3,2) = str2double(tmp{3});
line = fgetl(fid);
%normal=(-0.0120,0.9992,-0.0392)
Pt = findstr(line,'=');
tmp= ExtractValue(line((Pt+1):end));
InfoWaypoint(PtNbPoint,1,3) = str2double(tmp{1});
InfoWaypoint(PtNbPoint,2,3) = str2double(tmp{2});
InfoWaypoint(PtNbPoint,3,3) = str2double(tmp{3});
line = fgetl(fid);
%vect=(1.4965,0.1841,4.2200)
Pt = findstr(line,'=');
tmp= ExtractValue(line((Pt+1):end));
InfoWaypoint(PtNbPoint,1,4) = str2double(tmp{1});
InfoWaypoint(PtNbPoint,2,4) = str2double(tmp{2});
InfoWaypoint(PtNbPoint,3,4) = str2double(tmp{3});
line = fgetl(fid);
%width=(4.145,4.148,8.291,8.296)
Pt = findstr(line,'=');
tmp= ExtractValue(line((Pt+1):end));
InfoWaypoint(PtNbPoint,1,5) = str2double(tmp{1});
InfoWaypoint(PtNbPoint,2,5) = str2double(tmp{2});
InfoWaypoint(PtNbPoint,3,5) = str2double(tmp{3});
InfoWaypoint(PtNbPoint,4,5) = str2double(tmp{3});
line = fgetl(fid);
%dwidth=(8.291,8.296,0.000,0.000)
Pt = findstr(line,'=');
tmp= ExtractValue(line((Pt+1):end));
InfoWaypoint(PtNbPoint,1,6) = str2double(tmp{1});
InfoWaypoint(PtNbPoint,2,6) = str2double(tmp{2});
InfoWaypoint(PtNbPoint,3,6) = str2double(tmp{3});
InfoWaypoint(PtNbPoint,4,6) = str2double(tmp{3});
line = fgetl(fid);
PtNbPoint = PtNbPoint + 1;
if (PtNbPoint > number_waypoints)
break;
end
end
end
fclose(fid); |
Partager