0
我想通過使用FORTRAN 77遍歷文檔中的所有行,並將特定的行位置與字符串進行比較,然後進行編輯。FORTRAN循環線和字符位置?
例如爲:
|BXK |00640.3A |AWP |1.01|
|BUCKEYE MUNICIPAL AIRPORT |08794|
我想改變08794
到0871994
在第二行。
這是我到目前爲止有:
PROGRAM CONVERSION
IMPLICIT NONE
CHARACTER(LEN=120) :: ROW
CHARACTER(LEN=2) :: DATE1='19', DATE2='20'
INTEGER :: DATENUMBER
INTEGER :: J
OPEN(UNIT=1, FILE='BXK__96B.TXT', STATUS ='OLD')
OPEN(UNIT=2, FILE='BXK__96B_MODIFIED.TXT', STATUS='UKNOWN')
DO J=1,10000
READ(1,'(A)') ROW
IF (J==2) THEN
DATENUMBER = ICHAR(ROW(76))
IF ((DATENUMBER.LE.9) .AND. (DATENUMBER.GE.2)) THEN
WRITE(2, '(A)' ROW(1:75), DATE1, ROW(76:120))
ELSE
WRITE(2, '(A)' ROW(1:75), DATE2, ROW(76:120))
ENDIF
END IF
END DO
CONTINUE
CLOSE(1)
CLOSE(2)
END
一些你的代碼不見了。你已經開始了DO循環,但沒有結束;並且您沒有任何讀取或寫入。 – 2012-07-31 19:10:18
您的代碼不是Fortran 77,您爲什麼要在F77中編寫代碼? – haraldkl 2012-07-31 19:30:24
如果你需要解析文本,你很可能需要內建函數「索引」和/或「掃描」,他們可以識別你的分隔符的位置,並將一行分割成單獨的列,修改你需要和寫的一切回來。 – haraldkl 2012-07-31 19:37:50