【问题标题】:reading delimiter with fortran用fortran读取分隔符
【发布时间】:2014-05-07 11:48:12
【问题描述】:

我需要阅读这种文件。我在读取文件中的分隔符时遇到问题。

xxxx

dd/mm/yyyy

文字

文字

角度

点数

-13.82|654781.695|292510.337|4.889|SD

0.00|654795.515|292510.337|4.373|P1

1.25|654796.765|292510.337|4.324|SD

1.29|654796.805|292510.337|4.657|SD

1.68|654797.195|292510.337|4.622|SD

......

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 我试图读取分隔符“|”作为一个角色,但它没有工作
  • 这不是很有帮助:(你能给我们一些代码吗?也许我们可以帮助你!

标签: fortran delimiter


【解决方案1】:

(1) 使用“(a)”格式将文件中的行读入字符串。

(2) 用 Fortran 识别的分隔符(空格或逗号)替换字符串中不需要的分隔符。

(3) 使用“内部读取”从字符串中获取数据。

下面的程序说明了步骤 (2) 和 (3)。

program main
implicit none
character (len=20) :: str
integer            :: i
real               :: x,y
str = "321.1|5678.9"
do i=1,len_trim(str)
   if (str(i:i) == "|") str(i:i) = " "
end do
print*,"str = '" // trim(str) // "'"  ! output: '321.1 5678.9'
read (str,*) x,y
print*,"x, y =",x,y ! output: x, y = 321.1 5678.9
end program main

【讨论】:

  • 谢谢。我会试试这个。我试着把它当作一个角色来读,但它没有用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-21
  • 1970-01-01
  • 1970-01-01
  • 2012-12-23
相关资源
最近更新 更多