| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1627 人关注过本帖, 1 人收藏
标题:请教只将符合条件的写入到指定文件
只看楼主 加入收藏
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
结帖率:73.44%
收藏(1)
已结贴  问题点数:20 回复次数:33 
请教只将符合条件的写入到指定文件
先生好,要将1——12这12个数分成三组,第一组3个数,第二组4个数,第三组5个数,且要求每组的和分别是26,这问题编程后运行下来着实让我吓一跳,因运行后将结果写入到指定文件时,会使指定文件的大小超过2G且还未算完,但这写入指定文件的记录中有许多是有重复数值的,我的要求是这三组共12个值分别是1——12这12个数的不重不漏,所以请教修改代码,谢谢,代码如下(表文件和PRG文件均在附件中):
请教先生.rar (1.63 KB)

CLEAR
CLOSE  all
SET SAFETY OFF
 CREATE TABLE 横向搜索表(列1 N(20))
     FOR X = 2 TO  12  
    ALTER table 横向搜索表 ADD ('列'+TRANSFORM(X)) N(20)
    ENDFOR
*----------------------   
USE 原表
HS=RECCOUNT()
Dimension YB(HS)
select * from 原表 into array YB
*------------------------------------
USE 横向搜索表
  FOR H1=1 TO  hs
      b=Yb(h1)         
    FOR H2=1 TO hs
        c=Yb(h2)
        FOR H3=1 TO hs
            e=Yb(h3)        
           FOR H4=1 TO  hs
              f=Yb(h4)         
             FOR H5=1 TO  HS
                 g=Yb(h5)         
                FOR H6=1 TO hs
                   i=Yb(h6)
                  FOR H7=1 TO hs
                      j=Yb(h7)        
                    FOR H8=1 TO  hs  
                        k=Yb(h8)              
                      FOR H9=1 TO  HS
                          l=Yb(h9)
         *---------     
           a = 26-b-c                          
           d = 26-e-f-g
           h = 26-i-j-k-l                  
         *-----------                 
               IF  1<=a AND a<=12  AND  1<=d AND d<=12    AND 1<=h AND h<=12   
                     &&--在这里想加进代码,使得a、b、......、k、l这12个字母取得的值正好是1——12这12个数的不重复不遗漏的情形。                     
                                        APPEND BLANK                                    
                                        REPLACE  列1 WITH  a
                                        REPLACE  列2 WITH  b
                                        REPLACE  列3 WITH  c  
                                        REPLACE  列4 WITH  d
                                        REPLACE  列5 WITH  e
                                        REPLACE  列6 WITH  f
                                        REPLACE  列7 WITH  g
                                        REPLACE  列8 WITH  h
                                        REPLACE  列9 WITH  i
                                        REPLACE  列10 WITH  j
                                        REPLACE  列11 WITH  k
                                        REPLACE  列12 WITH  l
                      ELSE     
                     LOOP      
                ENDIF  
   *^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   
          ENDFOR
         ENDFOR   
        ENDFOR        
       ENDFOR
      ENDFOR
     ENDFOR
    ENDFOR
   ENDFOR
 ENDFOR
* ##################################################################
 MESSAGEBOX('本 次 运 行 结 束 !!',64,'信息提示')
 DELETE FILE *.BAK
QUIT

搜索更多相关主题的帖子: 记录 
2015-05-24 08:17
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
楼主的思路很独特嘛。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2015-05-24 08:33
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
看看运行结果
2015-05-24 08:45
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
回复 3楼 tlliqi
运行未完成被写入的文件已达到2G就提示文件过大而自动停止运行了
2015-05-24 08:55
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
VFP是32位编译,表文件大小的最大值2G字节。
2015-05-24 15:40
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
分表保存
2015-05-24 15:42
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
以下是引用吹水佬在2015-5-24 15:42:27的发言:

分表保存
哦,先生可否帮我插入代码,边搜索边检验,只把不重复不遗漏的记录写入到新表中,谢谢先生
2015-05-24 16:10
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
是不是12列都相同的记录才算“有重复”? 看不出有重复。
2015-05-24 17:08
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
以下是引用吹水佬在2015-5-24 17:08:24的发言:

是不是12列都相同的记录才算“有重复”? 看不出有重复。
先生,像:12、11、3;6、7、9、4;1、2、5、8、10这样就算不重复不遗漏。而像:12、11、3;6、7、9、4;1、2、4、9、10这样因9用了二次就算重复或者说5没用到就算遗漏了,谢谢先生
2015-05-24 17:38
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
回复 9楼 fdxxhjc
先生也就是说重复的不能出现一次及以上
2015-05-24 17:45
快速回复:请教只将符合条件的写入到指定文件
数据加载中...
 
   



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

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