使用记录选项

时间:2015-08-12 20:39:25

标签: fortran

我有一个带有db记录选项的字符串,例如:

str = "-t Maintainer -e Name = Luca" 

如何分隔记录选项字符串,以便我有两个数组,如下所示。我希望这适用于使用-key value--key value设置记录选项的任何设置。

key(i) = ["t", "e"]
val(i) = ["Maintainer", "Name = Luca"]

我还想根据条件将字符串拆分为单独的字符串。

1 个答案:

答案 0 :(得分:1)

Fortran有一个名为index的函数,它给出给定字符串中第一个或最后一个子字符串出现的开头索引。您可以使用该函数获得所需内容,下面是从上次出现时提取的示例。

这是一个起点:

program test
implicit none

    character(*), parameter :: str = "-t Maintainer -e Name = Luca"
    integer pos1, pos2

    pos2 = index(str, '-', .true.)
    print*, "key2 = ", str(pos2+1:pos2+1)
    print*, "val2 = ", adjustl( str(pos2+2:) )

    pos1 = index(str(:pos2-1), '-', .true.)
    print*, "key1 = ", str(pos1+1:pos1+1)
    print*, "val1 = ", adjustl( str(pos1+2:pos2-1) )

end

输出

key2 = e
val2 = Name = Luca
key1 = t
val1 = Maintainer

您可以适应您的需求