主题:求助:想跳过某些行输出数据,怎么实现
小艾rain
[专家分:0] 发布于 2010-10-15 23:26:00
我只想输出所有数据文件,所有描述文件都不要,怎么实现?
列是确定的,行不确定,多少行都有可能
最后更新于:2010-10-17 19:16:00
回复列表 (共11个回复)
沙发
helo_aBiNg [专家分:480] 发布于 2010-10-15 23:31:00
read(file_no, *)
板凳
jstzhurj [专家分:4680] 发布于 2010-10-16 01:23:00
很多类似的问题,找一下。
3 楼
小艾rain [专家分:0] 发布于 2010-10-17 16:20:00
这个方法只能跳过最前面的几行不读。我想输出所遇数字部分的内容,而这个文件那个37行数据就有9行的描述内容,这部分东西我不想要。
4 楼
jstzhurj [专家分:4680] 发布于 2010-10-17 17:42:00
行?列?贴出文本。
5 楼
小艾rain [专家分:0] 发布于 2010-10-17 19:34:00
我只会跳过前面几行,后面的就不会了,这个是我自己写的。
不知道还要怎么改了
program 123
implicit none
character(len=79) :: filename
character(len=79) :: buffer
integer, parameter :: fileid = 10
integer :: status = 0
integer i
write(*,*) "Filename:"
read (*,"(A79)") filename
open(unit=fileid, file=filename,access="sequential", status="old")
open(unit=20, file='output.txt',status="replace")
do i=1,11
read (fileid,*)
enddo
do while(.true.)
read(unit=fileid, fmt="(A79)", iostat=status ) buffer
if ( status/=0 ) exit
write(20,"(A79)") buffer
end do
stop
end
6 楼
jstzhurj [专家分:4680] 发布于 2010-10-17 21:41:00
方法有很多,要善于发现文件的特点。
7 楼
jstzhurj [专家分:4680] 发布于 2010-10-17 21:59:00
举一列:
program readin
implicit none
character(len=30) :: filename
character(len=128) :: buffer
integer, parameter :: fileid = 10
integer :: i
write(*,*) "Filename:"
read (*,*) filename
open(unit=fileid, file=filename,access="sequential", status="old")
open(unit=20, file='output.txt',status="replace")
do while(.true.)
read(unit=fileid, fmt='(a)', end=100 ) buffer
if(ichar(buffer(8:8))>=48.and.ichar(buffer(8:8))<=57.and.index(buffer,'E-')/=0) then
write(20,'(a)') trim(buffer)
write(*,'(a)') trim(buffer)
endif
end do
100 close(fileid)
stop
end
8 楼
小艾rain [专家分:0] 发布于 2010-10-17 23:04:00
谢谢。刚刚开始学习fortran,以后还请多多指教
9 楼
小艾rain [专家分:0] 发布于 2010-10-17 23:20:00
我有点不明白,这项一定要判断吗?我把这项删掉貌似已没有问题,只判断字符串的第八个字符是不是在0~9就可以了。
index(buffer,'E-')/=0
10 楼
jstzhurj [专家分:4680] 发布于 2010-10-17 23:22:00
你一上来不拿具体的东西来问,谁也不好回答,对具体问题,才能有针对性的回答。
我来回复