了解知识
!=============================================================  
subroutine StringSplit(InStr,delimiter,StrArray,nsize)  
!----------------------------------------------  
!---将字符串InStr进行分割,结果放入StrArray中  
!---delimiter::分隔符号,例如';,,' 使用;和,分割字符串  
!---nsize:分割数目  
!---吴徐平2011-04-29(wxp07@qq.com)  
!----------------------------------------------  
implicit none  
character(len = *) , Intent( IN ) :: InStr  
character(len = *)  , Intent( IN ) :: delimiter  
character(len = LEN(InStr)),dimension(LEN(InStr)),Intent( OUT ) :: StrArray  
integer, Intent( OUT ) :: nsize ! Effective Size of StrArray  
integer:: i,j ! loop variable  
integer:: istart ! split index for Start Position  
nsize=0  
istart=1  
do i=1,LEN(InStr)  
    do j=1,LEN(delimiter)  
        if (InStr(i:i) == delimiter(j:j)) then  
            if (istart == i) then  
            istart=i+1 ! ---可防止分隔符相连的情况  
            end if  
            if (istart<i) then  
                nsize=nsize+1  
                StrArray(nsize)=InStr(istart:i-1)  
                istart=i+1  
            end if  
        end if  
    end do  
end do  
! ---匹配最后一个子字符串  
if (nsize>0) then  
    if (istart<LEN(InStr)) then  
        nsize=nsize+1  
        StrArray(nsize)=InStr(istart:LEN(InStr))  
    end if  
end if  
! ---如果无可分割的子字符串,则包含整个字符串为数组的第一元素  
if ( (nsize<1) .AND. (LEN(TRIM(InStr)) > 0 )) then  
        nsize=1  
        StrArray(1)=InStr  
end if  
end subroutine StringSplit  
!  
!=============================================================  
subroutine StrReplace(InStr,OldChar,NewChar,OutStr)  
!------------------------------------------------------------  
!---将字符串InStr中的字符串OldChar替换成NewChar  
!---结果放入字符串OutStr中  
!---吴徐平2013-07-20(wxp07@qq.com)  
!------------------------------------------------------------  
implicit none  
character(len = *) , Intent( IN ) :: InStr  
character(len = *) , Intent( IN ) :: OldChar  
character(len = LEN(OldChar)) , Intent( IN ) ::NewChar  
character(len = LEN(InStr)) , Intent( INOUT ) :: OutStr  
integer :: i  ! loop variable  
OutStr=InStr  
i=INDEX(OutStr,OldChar)  
do while(i>0)  
    OutStr(i:i+LEN(OldChar)-1)=NewChar  
    i=INDEX(OutStr,OldChar)  
end do  
end subroutine StrReplace  
!------------------------------------------------------------  
标签: Fortran
扩展知识