www.gusucode.com > 汽车转动仿真源码程序 > 汽车转动仿真源码程序/汽车转动仿真1/Adams_Car_Data_Processing/find_string.m

    function find_string(fin,fidout)
% fin=fopen('t_parallel_travel.res');      %打开文件
% fidout=fopen('travel.txt','w');               % 创建MKMATLAB.txt文件,以后将结果都输入到'travel.txt'中去
%%%%%以上fin,fidout在这个子程序里面就不用了,直接在主程序adams_process_main.m里面写上要处理的RES文件名称和要存储
%%%%%的名称%%%%%%%%%%%%
captial='';                                   %定义一个全局变量,代表Entity name 后面里面引号的内容,如_cv_part_XFORM
while 1
     tline = fgetl(fin);                      %读一行给tline
     if ~ischar(tline), break, end            %判断是否到了文件尾
     ret=findstr(tline,'Entity');             %寻找字符串Entity,若找到了ret里面是放的Entity的首字符E的位置,若找不到ret就是空字符
     if isempty(ret)                          %isempty是判断是不是为空字符。若ret=0 isempty(ret)=1,意思就是若找不到Entity就寻找Component
         rett=findstr(tline,'Component');     %寻找Component,若找到了rett里面是放的Component的首字母C的位置,若找不到rett就是空字符
         if ~isempty(rett)                    %~isempty就是非isempty,意思就是如果找到了Component,rett里面放的Component的位置~isempty(rett)是真,否则是假
         a=findstr(tline,'"');                %寻找双引号",找到的话a里面放的是双引号"的位置,"是一个字符,不是两个字符
         b=tline((a(1)+1):(a(2)-1));          %将前两个双引号之间的字符读出来,给b
         sl=strcat(captical,'_',b);           %将captial和b连接起来,中间用.连接的
         fprintf(fidout,'%s ',sl);            % 此处添加文件写入,将s1写入文件travel.txt中
         end
     else                                     %若找到了Entity,再往下再判断是否为结束的符号/Entity,若不是/Entity,那就是Entity了,然后读Entity后面双引号里面的内容给capital
         res=findstr(tline,'/Entity');        %判断是否为/Entity,若找不到res是空字符,若找到res是/Entity里面/的位置
         if isempty(res)                      %如果找不到/Entity,isempty(res)就是真
         a=findstr(tline,'"');                %寻找双引号        
         b=tline((a(1)+1):(a(2)-1));          %将Enitity后面前两个双引号之间的字符给b
         captical=b;                          %b再给全局变量,以便上面sl=strcat(captical,'.',b)调用
         end
     end
end
fclose(fidout);
% disp(fout(2:end));