找回密码
 注册
Simdroid-非首页
查看: 38|回复: 1

循环读取行号出错

[复制链接]
发表于 2011-8-31 10:45:36 | 显示全部楼层 |阅读模式 来自 湖北武汉
我想通过查找文本文件中已知内容所在的行号,并打印该行出来,但是通过循环读取的时候,第一个行号还正确,到后面就不正确了,不知道为什么,我通过断点调试了一下,发现到读取第二个内容的时候它每次读的内容好像就不是一行行读。
如果我固定读取一行的内容的话,就不会出错。
  1. clear
  2. clc
  3. filename_in='F:\20110108-043040.txt';
  4. fidin=fopen(filename_in, 'rt');
  5. NoOfLine=zeros(1, 11);    %因为我要查找11个字符串,从trigger 0到trigger 10
  6. for i=0:10
  7.     nline=1;                        %每次读字符串时,都重新从文本读取,所以设定从第1行开始读
  8. CharOfTrigger=['trigger ' num2str(i)];  %用循环每次先读字符串,然后再文本中从头开始找
  9. while ~feof(fidin)
  10.   tline=fgetl(fidin);
  11.   if strfind(tline, CharOfTrigger)>=1
  12.    fprintf('%s\n', tline);
  13.             NoOfLine(i+1)=nline;
  14.    break;
  15.   end
  16.   nline=nline+1;
  17. end
  18. end
  19. fclose(fidin);
复制代码
求求大家帮我看看有什么问题。
我用的是MATLAB R2009b的版本。谢谢!
 楼主| 发表于 2011-8-31 14:26:29 | 显示全部楼层 来自 湖北武汉
Simdroid开发平台
:lol我知道错哪了
这里面犯了一个致命错误就是,每次循环结束之后,我只是把行号改了,改到第1行,但是没有把光标的位置改到文本文件的开始。
在循环的结束位置缺少一个frewind(fidin)。
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-7-17 04:52 , Processed in 0.029623 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表