【发布时间】:2019-04-24 10:45:28
【问题描述】:
我有一个文件,其中包含每个元素的压力值。我需要元素编号 (ELNO) 和压力 (PLOAD) 并通过一个子程序。我无法从文件中单独读取它们。 从 S175 开始,数据将如下所示。
我希望能够读取此文件,例如 A0001.txt,并逐行读取。在读取行时,我想将第一个点之后的数字(例如 1007、1008 等)存储到变量 ELNO 中,并将最后一个逗号之后的数字存储在循环中的变量 PLOAD 中。这是因为我需要每个 ELNO 值并使用 IF 循环检查条件。
我的问题是读取文件并将其存储在像 ELNO(i) 这样的变量中。名称 S175 是不变的。
我想我明白其中的逻辑。我必须将每个 like 存储为一个字符串,并从字符串中的第 6 个位置开始迭代,直到找到第一个“,”并将其存储在 ELNO(i) 中。但我是 FORTRAN 的新手,无法获得它。过去一周我一直在尝试学习 FORTRAN 来做到这一点。但是,无法解决这个问题。
我在下面尝试了这样的代码,但它没有逐行读取,因为我猜我没有把它放在一个循环下。
S175.1007,P,0.221948
S175.1008,P,0.221943
S175.1009,P,0.221929
S175.1010,P,0.222287
S175.1018,P,0.222438
S175.1019,P,0.222425
.....
.....
.....
.....
.....
S175.13000,P,-1990
S175.13001,P,-1980
S175.13002,P,-2009
PROGRAM BARGE
implicit none
CHARACTER X*80
OPEN(UNIT=60, FILE="A0001.txt", ACCESS='SEQUENTIAL', ACTION='READ')
READ(UNIT=60, FMT='(A)', END=10)X
10 OPEN(UNIT=61, FILE="2.txt", ACTION="write")
WRITE (UNIT=61,FMT='(A)')X
END PROGRAM BARGE
【问题讨论】:
-
谢谢。我没有看到这个。我试过谷歌搜索,但没有找到这个例子。在此期间我已经做到了。可能有更好的方法。我是新手,所以这可能不是最好的方法。