Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Fortran > [General] сформировать массив


Автор: surius 7.5.2008, 20:30
Господа, нужна помощь...
Задача такая:
Есть файл, обычно просматриваемый в exel. В нем 5 столбцов и 65к строк, только числа. 1-ый столбец-номер, являющийся кододом устройства, с которого снимается значение параметра
2-ой столбец-значение параметра, размерность здесь важно, просто число. 3-ий стобец время в формате чч:мм:сс (наверное лучше рассматривать как символьное значение). Остальные столбцы не сильно важны...
Нужно извлечь из файла каждое 267 значение из каждого столбца, т.е на языке exel, A1, A268, A535.... и занести эти значения в первую строку массива А1-а1,1, А268-а1,2, А535-а1,3... Затем взять значени А2, А269, А536 и занести эти значения во вторую строку массива А2-а2,1, А268-а2,2, А536-а2,3... В общем и целом из 1-ого столбца исходного файла нужно сформировать массив

Может кто сталкивался с такой задачей и подскажет как это реализовать с исходным exel файлом.

Автор: Иванофф 9.5.2008, 22:26
запишите ексел файл в текстовый файл с разделителями и читайте фортраном.

Автор: popovda 15.5.2008, 12:17
Файл запишите через запятую, а дальше так (это уж совсем в лоб):

real(8), dimension(65536/267+1,5) :: Arr;
real(8), dimension(5) :: tmp;
integer(4) :: i;

open(100,file='файл',status='old');

do i = 1,65535
        read(100,*) tmp;
        if(mod(i-1,267)==0) Arr(((i-1)/267)+1,:  ) = tmp; 
end do

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)