作者btoker (阿瑞)
看板Fortran
标题Re: [问题] 指定读取文字资料
时间Mon Feb 6 21:39:45 2012
我想再请问一下
若是现在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新手 试了两天还是苦思不出写法
还请各位赐教
谢谢各位
※ 引述《kkarthur (aa)》之铭言:
: ※ 引述《btoker (阿瑞)》之铭言:
: : line,framesections, point coordinates三个都算是标题
: : 我想只抓framesections里的八个frame
: : 输出答案为" 8 "
: : 请问是否有指令可以去做判别"我要从哪里开始读"
: : 或是" 读到空白处结束" 并计算个数
: : 谢谢各位
: CHARACTER(LEN=80) LLEN
: INTEGER :: IERR,COUNT
: OPEN(UNIT=11,FILE="xx.txt")
: COUNT = 0
: DO WHILE(.TRUE.)
: READ(11,"(A80)",IOSTAT=IERR) LLEN
: IF(IERR==-1) EXIT
: IF(LLEN(1:13)=="framesections") THEN
: DO WHILE(.TRUE.)
: IF(IERR==-1) EXIT
: READ(11,"(A80)",IOSTAT=IERR) LLEN
: IF(LLEN(1:5)=="frame") THEN
: COUNT = COUNT + 1
: END IF
: END DO
: END IF
: END DO
: 试试看吧
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.165.84.114
1F:→ Cypresslin:如果26一定会出现再最後一列的话,那就是用字串读入最 02/07 23:36
2F:→ Cypresslin:後一列,然後用index搜寻"26" 或直接用if判断该读入字 02/07 23:37
3F:→ Cypresslin:串的第9到第十字元是否为26 02/07 23:38
4F:推 wtula:我会去检查第九或是第十个字元是不是引号先 然後用不同的 02/08 02:13
5F:→ wtula:然後再决定我的数字是在第八位或是第八第九位 02/08 02:14