【发布时间】:2018-07-11 20:15:19
【问题描述】:
我正在开发一个 Fortran 程序,它必须从文本文件中获取一些数据,并使用第一个文件中的特定数据生成另一个文本文件。 输入文件有很多行以我知道的几种特定格式编写。虽然我知道格式,但这个文件中的行是“随机”生成的。
如果我可以比较每一行的写入格式,那么生成输出文件会容易得多,然后我就会确切地知道我可以从输入文件的那一行获得哪些数据以在输出文件中使用它.
我需要的是,例如,知道在LINHA 变量中读取和存储的行的格式在FORMATO 变量中进行了描述,请执行以下操作:
IF (FORMATO = '(1X, 15,3F8.1,2 (5A, 1X))') THEN
READ (LINHA, '(6X, F8.1)') my_variable
END IF
因为可能还有其他格式,比如
'(6A, 2F8.1, F8.6,2 (6A))'
其中,如果我使用相同的READ 语句,我将在my_variable 中读取一个F8.1 变量,但是这个值不是正确的。
【问题讨论】:
-
我看不出发布代码如何帮助解决这个问题。如果你知道如何,你可以简单地展示如何。如果有人问我如何使用 fortran 在屏幕上写一些没有特定格式的东西,我可以回答说:使用 WRITE (*, *) "text" 命令。
-
当您的线路是
12时,您预计如何区分使用的格式'(A)'和'(2I1)'或'(I2)'? -
我必须从输入文件中读取所有行并确定我需要什么信息。有些行很容易通过内容(标题、表格的结尾行等)来识别,但其他行则不那么容易。
-
问题已编辑
-
将该行读入字符串。选择格式1。尝试对格式1下的字符串进行内部读取。如果成功则拍拍自己的背,喝啤酒继续计算。如果失败,请选择格式 2。尝试对格式 2 下的字符串进行内部读取,...。
标签: string file fortran format