SCILAB

SCILAB是一个类MATLAB软件,最近在做一个分齿算法,用到了它。

下面的代码是实现统计文本文件的某个字段功能:

less80cnt=0;
datestr="20140703"
writecontent="";
rtmp="";

fpath="F:\132 data\line5\20140701-20140705\5\x\"+datestr;
flst=findfiles(fpath,"*.txt");

for fidx=1:size(flst,"r")
    fcontent=csvRead(fpath+"\"+flst(fidx),"\t",[],"string");
    for ridx=1:size(fcontent,"r")
        if(fcontent(ridx,1)=="80"&(fcontent(ridx,8)=="0"|fcontent(ridx,9)=="0"|fcontent(ridx,10)=="0"|fcontent(ridx,11)=="0"))
            rtmp=fcontent(ridx,1)+ascii(9)+fcontent(ridx,2)+ascii(9)+fcontent(ridx,5)+ascii(9)+fcontent(ridx,8)+ascii(9)+fcontent(ridx,9)+ascii(9)+fcontent(ridx,10)+ascii(9)+fcontent(ridx,11)++ascii(10)+ascii(13);
            writecontent=[writecontent;rtmp];
            disp(rtmp);
            less80cnt=less80cnt+1;
        end
    end
end

writecontent=[writecontent;"The motor of less 80 tooth in " + fpath + " has " + string(less80cnt)];
write("D:\Users\RD\Desktop\"+datestr+".txt",writecontent);

输出结果如下:

 80	201407032151430500105	5	2190	0	2303	2303


 80	201407032151430500105	10	0	0	2616	2616


 80	201407032206520500105	1	1971	0	2106	2106


 80	201407032213250500105	9	2558	0	2581	2581


 80	201407032227520500105	1	1935	1935	2331	0


 80	201407032235170500105	4	2266	2266	0	0


 80	201407032242260500105	7	2167	0	2364	2364


 80	201407032249590500105	2	0	0	0	0


 80	201407032249590500105	12	0	0	0	0


 80	201407032257020500105	8	1979	1979	0	0


 80	201407032305380500105	3	2349	0	2491	2491


 80	201407032312150500105	8	2396	2396	0	0


 80	201407032319170500105	6	0	0	2020	2020


 The motor of less 80 tooth in F:\132 data\line5\20140701-20140705\5\x\20140703 
 has 266