Список содержимого каталога в Fortran

Как получить содержимое каталога в Fortran 95?


person Stefano Borini    schedule 17.01.2012    source источник
comment
Что вы имеете в виду, что я должен его проложить, иначе он не пройдет. Что ты уже испробовал. Достаточно ли вывести содержимое каталога на экран или нужно хранить список файлов в переменной?   -  person Chris    schedule 17.01.2012
comment
@Chris: я имел в виду сам вопрос, слишком короткий, чтобы его принял SO.   -  person Stefano Borini    schedule 17.01.2012


Ответы (3)


Если у нас есть все файлы в папке «inFiles», мы сначала узнаем, сколько их там, а затем читаем их имена в массив, проверьте это:

  real :: r
  integer :: i,reason,NstationFiles,iStation
  character(LEN=100), dimension(:), allocatable :: stationFileNames

  ! get the files
  call system('ls ./inFiles > fileContents.txt')
  open(31,FILE='fileContents.txt',action="read")
  !how many
  i = 0
  do
   read(31,FMT='(a)',iostat=reason) r
   if (reason/=0) EXIT
   i = i+1
  end do
  NstationFiles = i
  write(verb,'(a,I0)') "Number of station files: " , NstationFiles
  allocate(stationFileNames(NstationFiles))
  rewind(31)
  do i = 1,NstationFiles
   read(31,'(a)') stationFileNames(i)

! написать (глагол, '(a)') обрезать (stationFileNames (i)) конец сделать закрыть (31)

person user1008139    schedule 31.07.2013

Чтобы быть педантичным, вы не делаете. В Fortran 95 нет встроенных функций, которые могли бы вам помочь.

В системе POSIX и последнем компиляторе Fortran вы можете использовать ISO_C_BINDING для создания интерфейсов к функциям POSIX opendir() и readdir() (или readdir_r(), если вам нужна безопасность потоков), которые позволяют вам перебирать записи каталога.

person janneb    schedule 17.01.2012
comment
Позволяет ли этот язык делать что-нибудь полезное, кроме умножения чисел? - person Stefano Borini; 17.01.2012
comment
Для сравнения, можете ли вы указать, где в стандарте C или C++ можно найти функциональность для вывода списка содержимого каталога? - person janneb; 17.01.2012
comment
можно было бы ожидать, что стандартная библиотека для таких тривиальных операций доступна из коробки для языка такого возраста. - person Stefano Borini; 17.01.2012

В Фортране нет понятия каталога как такового. Он читает файлы. (Есть некоторые процессоры, которые даже не имеют концепции каталога).

С учетом сказанного, проще всего было бы использовать SYSTEM. Зависит от того, что вы хотите с этим после...

person Rook    schedule 17.01.2012