回 帖 发 新 帖 刷新版面

主题:如何用fortran来读不规则的txt文件

求助各位高手:
    如何用fortran来读txt?谢谢!

[email]null[/email]

回复列表 (共5个回复)

沙发

先去学学fortran的read函数是如何使用格式控制来读取文件的.

板凳

这文件还算不规则?

依我看,这文件实在太规则了对齐得非常好,还有表头

3 楼

要想简单方便的话,还是用matlab、excel等直接导入并处理后,再供Fortran读取

4 楼


谢谢 但是我的数据量很大 用excel太麻烦了

5 楼

[quote]这文件还算不规则?

依我看,这文件实在太规则了对齐得非常好,还有表头[/quote]

的确,给出的数据是很规则的。你要做的是找出需要提取的数据的‘类型’(几位的整数,小数,比如I4,F8.3和需要的空格)。

你还可以用dimension的方法来写,下面这个例子是读一列数据,以75*3的输出方式重新输出。

      program main

      character(160) :: filename,tmp
    integer m1,n1
    integer i,j,line,n,m  
      integer, dimension(75,3)::indata(75,3)

      filename='A_1_'
      print*, 'Please enter the number of files:'
      read*,n1
          do m1=1,n1
        write(tmp,*)m1      
        
      open(10,status='old', file=trim(filename)//trim(adjustl(tmp))
    1//'.dat')

      n=75
      do i = 1,n
    m=3
      read(10,*,iostat=ios) (indata(i,j), j=1,m)
    if (ios /=0) then
    exit
    endif

      open(11,status='unknown',file=trim('B_1_')//trim(adjustl(tmp))
    1//'.dat')
      write(11,111)(indata(i,j),j=1,m)  

      end do
      close(10)
    close(11)

      enddo
111   format (I4,2X,I4,2X,I4)
      end

我来回复

您尚未登录,请登录后再回复。点此登录或注册