[問題] 讀取資料設定
想請教一個應該不會太難的問題
我的主要程式碼如下(擷取部份)
CHARACTER(LEN=80):: LLEN
CHARACTER(LEN=4):: NUM(100)
INTEGER :: SPAN
READ(12,*)SPAN
DO K=1,SPAN
READ(12,ADVANCE="NO")NUM(K)
END DO
ELSE IF(LLEN(11:24)=="B"//" "//NUM(S)//" 1".OR.&
LLEN(11:24)=="B"//" "//NUM(S)//" 1".OR.&
LLEN(11:24)=="B"//" "//NUM(S)//" 1")THEN
READ(11,*)MLD,M1D,M2D,M3D,MRD,VLD,V1D,V3D,VRD
ELSE IF(LLEN(11:24)=="B"//" "//NUM(S)//" 2".OR.&
LLEN(11:24)=="B"//" "//NUM(S)//" 2".OR.&
LLEN(11:24)=="B"//" "//NUM(S)//" 2") THEN
READ(11,*)MLL,M1L,M2L,M3L,MRL,VLL,V1L,V3L,VRL
要讀取的檔案在11位置,格式如下
RF B 31 1 3.00
-.79 .37 .97 .76 .00 -1.73 -1.25 .73 1.21
.00
RF B 31 2 3.00
-.34 .21 .50 .38 .00 -.79 -.62 .39 .56
.00
而在12位置裡格式現在如下
2
19 31
在要讀取的檔11位置下
RF B XX
之後的數字是我在12位置INPUT的編號,編號可能會從1到999,所以會有IF條件裡不同的
空格
問題就是出在我所鍵入的INPUT
19 31
這裡
31會亂跑 我去WRITE以下這些
WRITE(*,*)"B"//" "//NUM(S)//" 1"
WRITE(*,*)"B"//" "//NUM(S)//" 1"
WRITE(*,*)"B"//" "//NUM(S)//" 1"
尾巴的1還會跳到第二行
使得跟我要的B XX 1
這個格式對不起來而抓不到東西
另外想請教READ(字串,*)數字 這招的使用時機?
是在任何地方都能用嗎
我是還沒用這招轉換成功過= =
以上麻煩請版上高手們給個解答
附上未完成程式碼
http://ppt.cc/0bcB
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.166.105.125
※ 編輯: btoker 來自: 218.166.105.125 (03/29 12:52)
※ 編輯: btoker 來自: 218.166.106.152 (03/30 10:04)
※ 編輯: btoker 來自: 218.166.106.152 (03/30 10:40)
→
03/30 10:57, , 1F
03/30 10:57, 1F
我WRITE只是看一下格式對不對 不過話說B跟空格真的可以合= =
我想不到方法解決 只好把19跟31分成兩行來讀= =
現在比較大的問題是我附上未完成的程式碼
迴圈無法讀到第2個編號 也就是說 迴圈跑S=2時
會讀不到NUM(2)的資料 看半天也看不出問題
再麻煩各位指教
※ 編輯: btoker 來自: 218.166.106.152 (03/30 11:30)
→
03/30 11:45, , 2F
03/30 11:45, 2F
→
03/30 11:47, , 3F
03/30 11:47, 3F
→
03/30 11:48, , 4F
03/30 11:48, 4F
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章