我遇到了以下问题:数据文件中有“n”行,但这不是问题,因为我能够读取对我来说很有趣的特定行。但是,我应该只是读取并保存该行的一个片段(一个值)。例如,该行在文件中写入为:Resisting Moment = 2779.94 kN-m
.
然后,我必须阅读并保存2779.94
. 也许,我可以通过从“=”读取到行尾来做到这一点,然后,我应该删除最后 5 个字符。但是,我不知道这是否可能或如何做到这一点。有人知道吗?
值的字符数可能会改变(例如,Resisting Moment = 27790.945 kN-m
)。因此,我无法固定一个点来完成读取,我只能固定不会发生变化的起点(值之前)。
另外,介于@agentp 和@Franz 的解决方案之间......
subroutine readrhs( line, val )
implicit none
character(*), intent(in) :: line
real, intent(out) :: val
integer :: n
n = index( line, '=' )
read( line( n+1 : ), * ) val
end
program main
implicit none
character(100) :: line
real :: val
line = "resisting moment = 12312.9 kN-m"
call readrhs( line, val )
print *, "moment = ", val
line = "force = 777.4 N"
call readrhs( line, val )
print *, "force = ", val
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句