[問題] 擷取檔案中某一部分數據的方式
初學fortran 只會用簡單的計算跟一些迴圈
由於現在用軟體算出來的output
夾雜英文和數字 想請問
有沒有辦法用找特定兩個關鍵字的方式
去讀在這兩個關鍵字中的數據
再把它寫出到另一個資料夾
做了一下功課 好像是需要使用到 index bacspace 跟 do 跳行
orientation:
---------------------------------------------------------------------
Center Atomic Atomic Coordinates (Angstroms)
Number Number Type X Y Z
---------------------------------------------------------------------
1 6 0 2.422098 -0.365891 0.476931
2 8 0 2.669932 -1.186283 1.333641
3 8 0 3.283776 0.059986 -0.453423
4 6 0 4.606155 -0.505397 -0.372798
.
.
.
.
.
.
---------------------------------------------------------------------
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
.
.
.
.
.
completed
大致上的數據格式是這樣,從orientation 到completer 有大概一千行
一個檔案裏面有大約40組這樣的內容
我想的流程大概是 先尋找到completed
然後使用backspace往上搜尋找到orientation
然後使用跳行讀取跳過前面
再來讀取 X Y Z 下的數據
然後跳出到找到completed的行數接著尋找completed
但是礙於能力有限具體的方式不太了解
所以想麻煩大家指點一下
謝謝
暫時把CODE整理成這樣 但是還是沒有辦法達成目的
PROGRAM EE
IMPLICIT NONE
CHARACTER(LEN=80) :: TXT
INTEGER :: FIOS,CN,AN,AT
REAL*8 X1,Y1,Z1
OPEN(UNIT=11,FILE="Text3.txt")
OPEN(UNIT=12,FILE="XYZ.TXT")
DO WHILE(.TRUE.)
READ(11,"(A80)",IOSTAT=FIOS) TXT
IF(TXT=="Optimization completed.") THEN
Backspace(11)
Backspace(11)
END IF
DO WHILE(.TRUE.)
READ(11,"(A80)",IOSTAT=FIOS) TXT
IF (LEN_TRIM(TXT)/="Standard orientation:")THEN
Backspace(11)
Backspace(11)
ELSE IF(LEN_TRIM(TXT)=="Standard orientation:") THEN
REWIND(12)
READ(11,*,IOSTAT=FIOS)
READ(11,*,IOSTAT=FIOS)
READ(11,*,IOSTAT=FIOS)
READ(11,*,IOSTAT=FIOS)
DO WHILE(.TRUE.)
READ(11,"(A80)",IOSTAT=FIOS) TXT
IF(TXT=="--------------------------------") EXIT
READ(TXT,*,IOSTAT=FIOS) CN,AN,AT,X1,Y1,Z1
PRINT *, X1,Y1,Z1
WRITE(12,*) X1,Y1,Z1
END DO
END IF
END DO
END DO
STOP
END
還請有看到的大大指點迷津
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.117.58.73
※ 文章網址: http://www.ptt.cc/bbs/Fortran/M.1418059835.A.5A9.html
推
12/09 10:24, , 1F
12/09 10:24, 1F
→
12/09 10:24, , 2F
12/09 10:24, 2F
→
12/09 10:25, , 3F
12/09 10:25, 3F
→
12/09 10:26, , 4F
12/09 10:26, 4F
→
12/09 10:27, , 5F
12/09 10:27, 5F
推
12/09 10:30, , 6F
12/09 10:30, 6F
→
12/09 10:31, , 7F
12/09 10:31, 7F
※ 編輯: kitsune128 (140.117.58.73), 12/10/2014 02:43:49
→
12/10 18:06, , 8F
12/10 18:06, 8F
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章