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

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


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


Ответы (3)


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

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

понятно:

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

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

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