作者kkarthur (aa)
看板Fortran
标题Re: [问题] 指定读取文字资料
时间Wed Feb 8 16:09:41 2012
※ 引述《btoker (阿瑞)》之铭言:
: 我想再请问一下
: 若是现在txt档如下
: point "w1" section="rectangle"
: point "w2" section="rectangle"
: point "w3" section="rectangle"
: point "w4" section="rectangle"
: point "w6" section="rectangle"
: point "w7" section="rectangle"
: point "w8" section="rectangle"
: point "w9" section="rectangle"
: point "w15" section="rectangle"
: point "w16" section="rectangle"
: point "w26" section="rectangle"
: 正常来说我要的答案是总列数,即11
: 问题是程式输出的数据会无规律看它心情跳号= =
: 不过庆幸的是txt里已经是由小到大排序好的
: 我现在只能用kk大的方式读出列数,即上面显示的11列
: 还有其他方式可以读到最後一列里 26 这个数字吗?
: 弱者我只是个fortran新手 试了两天还是苦思不出写法
: 还请各位赐教
: 谢谢各位
PROGRAM EE
IMPLICIT NONE
CHARACTER(LEN=80) :: TXT,T1,T2
INTEGER :: FIOS,I,NUM
OPEN(UNIT=11,FILE="yy.txt")
DO WHILE(.TRUE.)
READ(11,"(A80)",IOSTAT=FIOS) TXT
IF(FIOS==-1) THEN
EXIT
END IF
DO I=1,75
IF(TXT(I:I+5)=="point ") THEN
READ(TXT,*) T1,T2
T2 = TRIM(T2(2:))
READ(T2,*) NUM
WRITE(*,*) NUM
EXIT
END IF
END DO
END DO
CLOSE(11)
END PROGRAM EE
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.123.79.103
1F:→ callmei:我会比较喜欢直接在IF(TXT(I:I+5)=="point ") 下面使用 02/08 16:58
2F:→ callmei:READ(TXT(I+8:INDEX(TXT,"section")-3),*) NUM 02/08 16:58
3F:→ callmei:可以省掉几行程式码 02/08 17:00
4F:推 laa7352:推callmei,学到了~ 02/10 10:25