Matlab quickie: проверьте, пуст ли текстовый файл

Простой вопрос: я открываю файл в Matlab 7.x и хочу проверить, пуст ли он, прежде чем читать его. Как лучше всего это сделать?


person johndashen    schedule 25.02.2010    source источник


Ответы (3)


arrow_upward
9
arrow_downward

Взяв некоторые знания из этого предыдущий вопрося бы сделал следующее

s = dir('c:\somefile.txt');
if s.bytes == 0
    % empty file
else
    % open the file and read it
end;

Я предположил, что под пустым вы имели в виду, что в файле действительно нет ничего, включая символы новой строки. Если под пустым вы подразумеваете только символы новой строки, вам следует продолжить свое решение.

person Justin Peel    schedule 26.02.2010
comment
Я имел в виду пустой как ничто. Это то, что я искал, спасибо. - person johndashen; 26.02.2010
comment
@johndashen Рад, что смог помочь. - person Justin Peel; 27.02.2010

arrow_upward
0
arrow_downward

понятно:

fid = fopen(fil);
if all(fgetl(fid) == -1)
  % file is empty
else
  fseek(fid,0,-1); % rewind it
end
person johndashen    schedule 25.02.2010
comment
Если это двоичный файл, fgetl может вести себя странно. - person mtrw; 26.02.2010

arrow_upward
0
arrow_downward

Это самый чистый способ, о котором я могу думать:

if fseek(fileID, 1, 'bof') == -1
   % empty file
else
   rewind(fileID)
   % ready to read
end
person AVB    schedule 26.02.2010