open file, read a line then, rewind a line

20 次查看(过去 30 天)
Sam
Sam 2012-11-30
after fgetl(fid), the file position indicatior will be moved to the next line in the file, how could I rewind the indicator back 1 line in the file so when I call fgetl(fid) the second time it would return the same line?
  2 个评论
Sam
Sam 2012-11-30
say this is the text file i want to read
my line 1
my line 2
my line 3
my line 4
say after some steps, fgetl(fid) would return 'my line 3', then what should I do so when I call fgetl(fid) after this, it would still return 'my line 3'?

请先登录,再进行评论。

回答(1 个)

Matt J
Matt J 2012-11-30
编辑:Matt J 2012-11-30
Use FTELL to measure the position in bytes of each line. Then use FREWIND and/or FSEEK to go to the desired position.
  1 个评论
Walter Roberson
Walter Roberson 2012-11-30
Technical note:
If a file is opened with 'rt', which should be used for text files, then the value returned by ftell() is an arbitrary "token" rather than a file offset in bytes. Using the same token will get you to the same position, but you cannot do computations on the tokens.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Low-Level File I/O 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by