24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1256  |  回复: 10
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

lisu555

铁杆木虫 (著名写手)

[求助] 请大神帮编个提取目标数据的小程序,感激不尽啊,急用啊!已有1人参与

记录序号        电压/V
244        3.9803
245        3.9602
246        3.9438
             注:原始数据这里都不空格
2131        3.9648
2132        3.9447
2133        3.9388
            注:原始数据这里都不空格,这里空格方便说明情况而已!
11573        3.9534
11574        3.9332
11575        3.9137

13462        3.9524
13463        3.9323
13464        3.9121
13465        3.9081

15350        3.9506
15351        3.9298
15352        3.9097
15353        3.9013

17241        3.9484
17242        3.9283
17243        3.9081
17244        3.8926

38084        3.7339
38085        3.7116
38086        3.6883
38087        3.6647
38088        3.6437
38089        3.6226
38090        3.6000
38091        3.5779
38092        3.5565
38093        3.5361
38094        3.5135
38095        3.4930
38096        3.4716
38097        3.4508
38098        3.4304
38099        3.4102
38100        3.3901
以后还有类似数据已省略...


请大神帮编个提取目标数据的小程序: 即序号不是(+1)连续时,提取 连续序号段 相应首尾序号对应的电压值,如:我需要提取
3.9803  3.9438                 
3.9648  3.9388
3.9534   3.9137
3.9524   3.9081
3.9506   3.9013
3.9484  3.8926
3.7339  3.3901
谢谢,如果觉得金币少,可以加金币啊!谢谢!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

7152075

铁杆木虫 (著名写手)

解决问题的方法比遇到的问题多

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
lisu555: 金币+20, ★★★★★最佳答案, 好,谢谢,我试一试,太感谢了!好人啊!! 2016-12-26 00:24:17
引用回帖:
9楼: Originally posted by lisu555 at 2016-12-25 19:58:13
什么语言都可以,只要在win下 或linux下能运行就行。...

program Obtain_data
    implicit none
    integer i,j,k,ii,ierr
    integer,allocatable::num( : ) !//序号
    real*8,allocatable::voltage( : ) !//电压
    character( len=64 ) str,file_name

    open( 11,file='wenjian.txt' )
    open( 12,file='result.txt' )
    !******读取文件总共有多少行********
    i=0
    read( 11,* )
    do
        read( 11,*,iostat=ierr ) str
        if( ierr/=0 ) exit
        i=i+1
    end do
    allocate( num( i ) )
    allocate( voltage ( i ) )
    rewind( 11 )
    !********将序号和电压存储在数组中********
    read( 11,* )
    do j=1,i
        read( 11," ( a64 )" ) str
        read( str,* ) num( j ),voltage( j )
    end do
    !********找连续序号并提取出第一个和最后一个电压值********
    ii=1 !//记录连续序号有多少个
    do k=1,i
        if( ( k+1 )/=i ) then !//序号不是最后一个
            if( num( k+1 )==num( k )+1 ) then
                ii=ii+1
            else
                write( 12,"( 2 ( f8.4,2x ) )" ) voltage( k+1-ii ),voltage( k )
                ii=1
            end if
        else !//序号是最后一个的情况
            if( num( k+1 )==num( k )+1 ) then
                write( 12,"( 2( f8.4,2x ) )" ) voltage( k+1-ii ),voltage( k+1 )
                exit
            else
                write( 12,"( 2 ( f8.4,2x ) )" ) voltage( k+1-ii ),voltage( k )
                exit
            end if
        end if
    end do

    deallocate( num )
    deallocate( voltage )
    close( 11 )
    close( 12 )
    write( *,* ) 'OK'
    read( *,* )
    end program Obtain_data
这个程序是用Fortran书写的。输入文件叫wenjian.txt,输出文件叫result.txt,不知道你给的格式是什么样的,所以按照你给你自己做的,如有需要请自行修改其形式,包括输入文件样式等等。我自己做的输入文件上传了,不知道做的对不对。亲测在windows和Linux系统下编译都好使。
输入文件为
记录序号        电压/V
244        3.9803
245        3.9602
246        3.9438
2131        3.9648
2132        3.9447
2133        3.9388
4026        3.9590
4027        3.9388
4028        3.9335
5913        3.9565
5914        3.9363
5915        3.9298
7798        3.9537
7799        3.9335
7800        3.9261
9690        3.9534
9691        3.9329
9692        3.9199
11573        3.9534
11574        3.9332
11575        3.9137
13462        3.9524
13463        3.9323
13464        3.9121
13465        3.9081
15350        3.9506
15351        3.9298
15352        3.9097
15353        3.9013
17241        3.9484
17242        3.9283
17243        3.9081
然后你改成wenjian.txt。PS:小木虫今天传东西一直是error。
Chemistry
11楼2016-12-25 22:47:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

zhswee

铁杆木虫 (著名写手)

2楼2016-12-25 05:10:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lisu555

铁杆木虫 (著名写手)

引用回帖:
2楼: Originally posted by zhswee at 2016-12-25 05:10:46
学学Python吧,很简单

没时间啊!!
4楼2016-12-25 10:12:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Noch

金虫 (著名写手)

壮士

等待就是浪费青春!!!
5楼2016-12-25 11:21:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见