File io 使用fortran读取文本文件,其中开始的18行是字符串,其余的行是1000*8数组中的实数?
我有一个文本文件,其中前几行是文本,其余几行包含实数形式的数据。我只需要将实数数组存储在一个新文件中。为此,我读取文件中输出正确的所有行,然后尝试从特定行号中读取实数。我无法理解如何读取这些数据。 下面是文件的一部分。我也有很多这样的文件要读File io 使用fortran读取文本文件,其中开始的18行是字符串,其余的行是1000*8数组中的实数?,file-io,fortran,File Io,Fortran,我有一个文本文件,其中前几行是文本,其余几行包含实数形式的数据。我只需要将实数数组存储在一个新文件中。为此,我读取文件中输出正确的所有行,然后尝试从特定行号中读取实数。我无法理解如何读取这些数据。 下面是文件的一部分。我也有很多这样的文件要读 有许多例子可以说明如何跳过/阅读这样的行 但总而言之,选项A是跳过标题和只读数据: ! Skip first 17 lines do i = 1, 17 read (unit,*,IOSTAT=stat) ! Dummy read if ( st
有许多例子可以说明如何跳过/阅读这样的行 但总而言之,选项A是跳过标题和只读数据:
! Skip first 17 lines
do i = 1, 17
read (unit,*,IOSTAT=stat) ! Dummy read
if ( stat /= 0 ) stop "error"
end do
! Read data
do i = 1, 1000
read (unit,*,IOSTAT=stat) data(:,i)
if ( stat /= 0 ) stop "error"
end do
如果您有许多这样的文件,我建议将其包装在子例程/函数中
选项B是使用unixtail
实用程序放弃标题(更多信息):
tail-n+18 file.txt
Welcome,所有Fortran问题请使用、阅读和使用标签。当您的问题甚至没有任何版本特定的代码时,使用某些特定的Fortran旧版本进行标记是没有意义的。您应该自己努力解决问题,并至少展示一些代码和您面临的问题。这里有很多关于数据文件读取的问题。为什么您不能跳过18行并在简单数组中读取?您是否考虑过使用unix实用程序wc
和tail
wc
将告诉您文件中的行数tail
可用于打印文件中最后XXX行。@VladimirF我是这个平台的新手。我一定会提高我构建编码相关问题的技能。如问题中所述,我已经能够使用fortran代码读取数据行。我只是想解决为什么当我跳过第一行并显示字符时,数据没有被读取为实数。谢谢:)在这种情况下,您必须向我们展示您的代码。任何问题都需要解释为什么您的代码必须包含您的代码。看见
! Skip first 17 lines
do i = 1, 17
read (unit,*,IOSTAT=stat) ! Dummy read
if ( stat /= 0 ) stop "error"
end do
! Read data
do i = 1, 1000
read (unit,*,IOSTAT=stat) data(:,i)
if ( stat /= 0 ) stop "error"
end do