使用matlab批量的读取txt文件,并批量的删除文件中的空格 附:代码

   clear all
   close all 
   clc
   for i= 1:500
       m = num2str(i,'%06d');
   fin=fopen(['G:\DM2007\txt\',m,'.txt'],'r');
   if fin>0
   fout=fopen(['G:\DM2007\txt1\',m,'.txt']','w');
while ~feof(fin) 
      % 函数feof(fid)用法:文件指针 fid 到达文件末尾时返回“真”值;否则返回“假”;
      % ~feof 是在 feof 前加了“非”,是逻辑表达式:文件指针到达文件末尾时 该表达式值为“假”;否则为“真”;
      % while ~feof 表示 若 未读到文件末尾 则 继续 循环
      % while feof 表示 若 未读到文件末尾 则 终止 循环,所以只循环一次就终止了,运行结果自然为0
    tline=fgetl(fin);
      % 函数fgetl功能:从文件中读取一行数据,并去掉行末的换行符。 
      % 语法格式:tline = fgetl(fid) 
      % fid是通过fopen函数打开文件后得到的一个整型的文件标识。fgetl从这个文件中读取一行数据并丢弃其中的换行符。如果读取成功,tline容纳了读取到的文本字符串,如果遇到文件末尾的结束标志(EOF),则函数返回-1,即tline值为-1。 
      % 返回的字符串tline并不包含文本行的行终止符。要得到行终止符,可以使用函数fgets
      a=0;
      b=1;
    for i=1:length(tline)
        if (~strncmp(tline(i),' '' ',1))&&(b<9)  %判断这个字符是不是空格,如果不是空格的话就将其自动的写到txt文件中,(b<9)是因为我需要的是删除每行的前9个字符
            fprintf(fout,'%s',tline(i));                %里的空格,如果不需要,可以自行删除
        end
        if (~strncmp(tline(i),'\',1))&&(b>=9)
            fprintf(fout,'%s',tline(i));  
        end  
        b=b+1;
    end
     fprintf(fout,'\r\n');
end
fclose(fin);
fclose(fout);
   end
   end




%% 下面是用于批量读取txt文件,然后并找到不存在的txt文件;
% close all
% clear all
% clc
% A=[];
% b=1;
% for i=1:499
%     m = num2str(i,'%06d');
%     fid = fopen(['G:\实验数据\txt\',m,'.txt'],'r');
%     if fid<0
%     A(b)=i;
%     b=b+1;
%     end  
% end


%% 用于判断txt文件是否正常打开; 若文件正常打开,则fid>0; 否则fid<0;
% fid=fopen('000004.txt','r');
% if fid > 0 
% msgbox('成功打开文件!');
% else
% errordlg('文件打开失败', '文件错误');
% end

你可能感兴趣的:(matlab,Matlab)