从Fortran中的空格分隔文件中读取字符串

时间:2018-02-15 19:36:42

标签: string file-io fortran format

我正在Fortran中读取包含混合字符串/数字数据的大文件,例如:

114 MIDSIDE 0 0 O0002        436        437        584        438
115 SURFACE M00002 0 0        359        561        560        356
412236 SOLID   M00002 O00001 0      86157      82419      82418      79009

目前,每一行都以字符串形式读取,然后进行后处理以识别正确的术语。我想知道是否有任何方法可以将每一行读作一个整数,然后是四个字符串用空格分隔,然后再用一些整数;即类似于'(I10,4(A6,X),4I10)'格式,但没有关于每个字符串大小的任何信息。

不起作用(charr为空,iarr(2:5)= 0):

INTEGER IARR(5)
CHARACTER*30 CHARR(4)
C open the file with ID=1
READ(1,*)IARR(1),(CHARR(I),I=1,4),(IARR(I),I=2,5)

Works(仅适用于数据示例中的最后一行):

INTEGER IARR(5)
CHARACTER*30 CHARR(4)
C open the file with ID=1
READ(1,'(I10,4(A7,X),4I10)')IARR(1),(CHARR(I),I=1,4),(IARR(I),I=2,5)

问题是我不知道每个字符串的大小是什么。

1 个答案:

答案 0 :(得分:1)

我实际上发现f77rtl标志用于编译项目,当我删除标志时,问题得到了解决。所以列表导向的输入格式工作正常。