一個能做到這一點的F77,但是這是在風格上更F90 。
INTEGER*4 FUNCTION LengthString(String)
IMPLICIT NONE
CHARACTER* String
INTEGER*4 I
LengthString = -1 !default is -1 just because.
DO I=LEN(String), 1, -1
IF(String(I:I) .ne. ' ') THEN
LengthString = I
EXIT
ENDIF
ENDDO
RETURN
END FUNCTION LengthString
而且節目可能是這樣的:
PROGRAM Main
CHARACTER*80 AA
INTEGER*4 LenAA
...
LenAA = LengthString(AA)
IF(LenAA .lt. 1) !error out
...
WRITE(*,10) LenAA, A(1:LenAA)
10 FORMAT('AA(',I4,')="',A,'"')
...
公開聲明看起來是這樣的:
OPEN(FILE=AA(1:LenAA),...
和路徑是一樣的交易。
NewLongFile = Path(1:LenPath) // '/' // AA(1:LenAA)
Len_NewLongFile = LengthString(NewLongFile)
您真的有使用/受Fortran 77限制的要求嗎? – francescalus
是不幸 – MorganeMaPh
在使用列表控制輸入讀取文件路徑(包含未加引號的斜線)時,請注意[像這樣](https://stackoverflow.com/q/36863608)中的問題。 – francescalus