Чтение большого текстового файла с использованием другого файла в качестве строки формата ввода

У меня есть большие отформатированные текстовые файлы ( 200 Мб), содержащие данные, которые было бы полезно легко прочитать и сохранить. Периодичность формата составляет около 72 строк, и я хотел бы иметь другой файл, содержащий формат шаблона из 72 строк. Есть ли способ сделать это?

Идеальный способ был бы

formatstring = fileread(templatefile)

fileToRead = fopen(LargeFile,'r')

while ~feof(fileToRead)

object{i} = textscan(fileToRead,formatstring)

i = i+1
end

Файл шаблона будет выглядеть так:

CASE # %16f            DATE: %s

AILERON ANGLE        STAB ANGLE
%4.2f                 %4.2f

ALPHA      BETA     GAMMA

%4.2f      %4.2f      %4.2f

1 ответ

Если вы хотите прочитать файл формата и преобразовать его в допустимую строку формата, используйте это:

% read format file
fid = fopen('untitled.txt', 'r');
A = textscan(fid, '%s');
fclose(fid);

% transform into proper format string
A = A{1}(~cellfun('isempty', regexp(A{1}, '%')))
A = [A{:}];

в таком случае,

>> A
A = 
    %16f%s%4.2f%4.2f%4.2f%4.2f%4.2f

который вы можете использовать непосредственно в textscan в вашем while-loop.

Другие вопросы по тегам