Прервать чтение текстового файла во время его обновления - Matlab - PullRequest
0 голосов
/ 01 марта 2012

У меня работает 2 экземпляра Matlab. В то время как первый записывает данные в файл .txt, другой читает эти данные.

Есть ли способ проверить, что к TXT-файлу обращаются, и, соответственно, вызвать исключение / ошибку?

Я обнаружил, что второй экземпляр Matlab все равно читает данные, но выдает ошибку, такую ​​как Horzcat и т. Д., В то время как этот файл .txt также обновлялся.

fName = 'Test.txt' ;

% Matlab Instance1
mat = 1 + (2-1)*randn(100000,5)   ;      mat = mat.' ;

[fid, fMsg] = fopen(fName, 'at') ;
if fid~=-1,  fprintf(fid, '%.10f\t%.10f\t%.10f\t%.10f\t%.10f\r\n', mat(:)) ; end
fclose(fid);

    % Matlab Instance2
    fid = fopen(fName);
    C = textscan(fid, '%f %f %f %f %f', 'Delimiter', '\t');
    C=cell2mat(C);
    fclose(fid);

1 Ответ

0 голосов
/ 01 марта 2012

На экземпляре записи создайте файл с именем busyWriting.bla, прежде чем открывать файл для записи, удалите этот файл после того, как закончите запись.И в экземпляре чтения все заключить в пункт if(~exist('busyWriting.bla','file')) ... end

...