Как прочитать вывод из файла Excel в Фортран? - PullRequest
1 голос
/ 04 марта 2012

У меня есть лист Excel со следующими столбцами для биржевой диаграммы:

  1. Open
  2. High
  3. Low
  4. Закрыть
  5. Средний день

Как мне использовать Fortran, чтобы получить только "Среднее за день" из файла Excel?

Я новичок в Фортране и не смог найти ничего, что могло бы помочь, кроме ссылки ниже, но мне довольно трудно это понять, так как я ищу что-то отличное от того, что мне показывает ссылка:

http://en.wikibooks.org/wiki/Fortran/Fortran_simple_input_and_output

Ответы [ 3 ]

8 голосов
/ 04 марта 2012

Нет, в отличие от других ответов CSV - не самый простой для чтения файл.Перейдите в Файл / Сохранить как / Другие форматы и сохраните его как Отформатированный текст (разделенный пробелом) .В зависимости от вашей локали у вас будет запятая или точка с запятой в качестве десятичной точки, поэтому вам придется (либо использовать внешний редактор для простого поиска / замены), либо написать фортрановую подпрограмму, которая будет проходить символ за символоми заменяет каждую запятую точкой с полной остановкой.

После этого это просто, не нужно анализировать ;, поэтому вы просто

program FreeFormat

real(4), dimension(5) :: open, high, low, close, dayaverage
real(4) :: average

open(unit=1, file='filename.prn', status='old')
do i=1,5
    read(1,*)open(i), high(i), low(i), close(i), dayaverage(i)
enddo
average = sum(dayaverage)/5
write(*,'("Average is",f5.2)')average

end program FreeFormat

Вы получаете точку ...


Вот несколько ссылок для начала работы (связанные с Excel / Fortran DLL) ...

Проблема с расположением файла при подключении к Excel / Fortran DLL
Фортран DLL & MS Excel

2 голосов
/ 04 марта 2012

Собственный двоичный формат файла Excel будет очень трудно проанализировать. Экспортируйте файл в текстовый или CSV, как уже предлагалось. CSV, вероятно, будет проще всего. Вы, вероятно, хотите использовать «список направленного ввода-вывода», который имеет форму источника:

read (unit-number, *) format-items

Фортран, управляемый списком IO, будет считывать переменные в списке "format-items" очень гибким способом. Элементы в файле должны быть разделены разделителями, такими как пробелы или запятые. Для вашего случая, есть пять переменных, соответствующих пяти столбцам, чтобы достичь 5-го, который вы хотите. Fortran ориентирован на запись, поэтому вы делаете одно чтение на строку.

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

Вам нужно будет прочитать и проанализировать файл Excel на Фортране, чтобы получить нужные значения.Если вы новичок в языке, это может быть очень сложно сделать.Может быть, проще сохранить лист Excel в формате CSV и разобрать его?Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...