| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2362 人关注过本帖
标题:请教循环语句
只看楼主 加入收藏
qiaolinxj
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2009-3-14
结帖率:88.24%
收藏
已结贴  问题点数:10 回复次数:71 
请教循环语句
我想先将cyk表按53、54、55、56、57、58、59、60、63、64、65、70、71、72、73、74、75、76、77、78、79、80、81、82、83、84、85、86、87、88、89大类分再出来,
每类再按1、2、3、4、5层分字段为FC
抽样也同上cy.dbf
无效同上 wx.dbf
重点同上zd.dbf
有效同上 yx.dbf
分好后再判断,例如cy里53第一层的个数》=(cyk-cy)里53第一层的个数+5.若大于,则按RADOM从小到大排序取前wx53第一层个数,并在BZ字段里标注1,若小于,则停止,想请问这个循环该怎么写,谢谢















[ 本帖最后由 qiaolinxj 于 2013-11-25 14:39 编辑 ]
2013-11-25 12:50
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
上传数据表
说明循环的详细方法

[ 本帖最后由 sdta 于 2013-11-25 13:32 编辑 ]

坚守VFP最后的阵地
2013-11-25 13:30
qiaolinxj
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2009-3-14
收藏
得分:0 
数据表太大了,有一百多兆,类按照HYDL字段来取得,层按照FC字段来取得
循环方法是 抽样框里每一个类每一层的个数必须大于样本框里同一类同一层个数+5,如果大于,则抽样框此层按照RADOM排序取WX样本同层的个数并在BZ2字段加以标记
2013-11-25 14:07
b土木丁口
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:264
专家分:189
注 册:2013-9-12
收藏
得分:0 
路过
2013-11-25 14:22
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
收藏
得分:10 
回复 3楼 qiaolinxj
....

[ 本帖最后由 bccn0906 于 2013-11-28 15:29 编辑 ]
2013-11-25 14:25
qiaolinxj
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2009-3-14
收藏
得分:0 
我发DBF说不行,必须压缩,截图也发不出来

[ 本帖最后由 qiaolinxj 于 2013-11-25 14:41 编辑 ]
2013-11-25 14:39
qiaolinxj
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2009-3-14
收藏
得分:0 

2013-11-25 14:40
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用qiaolinxj在2013-11-25 14:07:07的发言:

数据表太大了,有一百多兆,类按照HYDL字段来取得,层按照FC字段来取得
循环方法是 抽样框里每一个类每一层的个数必须大于样本框里同一类同一层个数+5,如果大于,则抽样框此层按照RADOM排序取WX样本同层的个数并在BZ2字段加以标记
少部分 几十个记录可以的
2013-11-25 15:48
qiaolinxj
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2009-3-14
收藏
得分:0 
回复 8楼 tlliqi
写了这个循环语句,结果是出来了,但是不知道怎么能在CY1里标记
sele 1
use cy1.dbf
sele 2
use yb.dbf
sele 3
use wx.dbf
SELECT 4
USE cy2.dbf
SELECT 4
DELETE ALL
PACK

for i=53 to 89
    for m=1 to 5
        sele 2
        sele * from yb where hydl=i and fc=m into dbf ls1
        SELECT ls1
        n=RECCOUNT()
        k=n+5
        SELECT 1
        SELECT * FROM cy1 WHERE hydl=i AND fc=m INTO dbf ls2
        SELECT ls2
        s=RECCOUNT()
        IF k<=s
            SELECT 3
            SELECT * FROM wx WHERE hydl=i AND fc=m INTO dbf ls3
            SELECT ls3
            x=RECCOUNT()
            IF x<>0
                SELECT top x * FROM cy1 ORDER BY random WHERE hydl=i AND fc=m INTO dbf ls4
                SELECT 4
                APPEND FROM ls4
                SELECT ls4
                USE
                DELETE FILE ls4.dbf
            ENDIF  

            SELECT ls3
            USE
            DELETE FILE ls3.dbf
            
        ENDIF
        SELECT ls1
        USE
        DELETE FILE ls1.dbf
        SELECT ls2
        USE
        DELETE FILE ls2.dbf
        
    ENDFOR
ENDFOR
 CLOSE ALL
2013-11-25 16:39
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
收藏
得分:0 
....

[ 本帖最后由 bccn0906 于 2013-11-28 15:29 编辑 ]
2013-11-25 20:21
快速回复:请教循环语句
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049483 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved