| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 538 人关注过本帖
标题:重新发贴,请帮忙解决问题
只看楼主 加入收藏
林三少
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2009-9-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
重新发贴,请帮忙解决问题
程序代码:
CLEAR
CSTR=[12435789426473940012]
AA=IIF(BETWEEN(LEFTC(CSTR,1),[0],[4]),[小],[大])
CSTRB=[]
CREATE CURSOR T (A C(2),B N(2))
N=1
FOR I=1 TO LEN(CSTR)
    CSTRA=IIF(BETWEEN(SUBSTRC(CSTR,I,1),[0],[4]),[小],[大])
    IF CSTRA!=AA
       N=N+1
    ENDIF
    INSERT INTO T VALUES (CSTRA,N)
    AA=CSTRA
    CSTRB=CSTRB+CSTRA
ENDFOR

SELECT MAX(A.BB) B FROM (SELECT b,COUNT(*) AS BB FROM T GROUP BY 1) A INTO CURSOR TEMP

CNAME=[]
FOR I=1 TO N
    BB=[CC]+TRANSFORM(I)+[ C(2)]
    CNAME=CNAME+BB+IIF(I<N,[,],[])
ENDFOR
CREATE CURSOR S (&CNAME)
FOR I=1 TO TEMP.B
    APPEND BLANK
ENDFOR
SELECT A,B,COUNT(*) JS FROM T GROUP BY 2,1 INTO CURSOR TMP
SELECT TMP
SCAN
   SELECT S
   SCAN
      REPLACE (FIELD(TMP.B)) WITH TMP.A FOR RECNO()<=TMP.JS
   ENDSCAN
ENDSCAN
SELECT S
CSTR=[]
SCAN
   FOR I=1 TO FCOUNT()
       CSTR=CSTR+EVALUATE(FIELD(I))+IIF(I<FCOUNT(),+[ ],CHR(13)+CHR(10))
   ENDFOR
ENDSCAN
?CSTR
****************************************

问题如下:如上 如何将表中某一字段的所有的内容 附给 CSTR
表内容如下:
20130309    9    1    9    5    5
20130309    1    9    6    0    0
20130309    0    2    3    7    8
20130309    8    4    1    1    9
20130309    8    7    8    8    0

如想将 字段1=20130309 的第六列附值给CSTR,使CSTR=[50890]
应如何做,请高人指点。


2013-03-10 20:51
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:10 
程序代码:
USE TABNAME
CSTR=[]
FOR I=1 TO RECCOUNT()
    CSTR=CSTR+字段6
ENDFOR
?CSTR
SCAN FOR ALLTRIM(字段1)==[20130309]
     CSTR=CSTR+字段6
ENDSCAN
?CSTR


[ 本帖最后由 sdta 于 2013-3-10 21:22 编辑 ]

坚守VFP最后的阵地
2013-03-10 21:11
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
本人的初衷是为了论坛的繁荣,增加论坛的人气,请楼主不要有其它的想法。

坚守VFP最后的阵地
2013-03-10 21:12
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
程序代码:
CLEAR
CSTR=[12435789426473940012]
AA=IIF(BETWEEN(LEFTC(CSTR,1),[0],[4]),[],[])
CSTRB=[]
CREATE CURSOR T (A C(2),B N(2))
N=1
FOR I=1 TO LEN(CSTR)
    CSTRA=IIF(BETWEEN(SUBSTRC(CSTR,I,1),[0],[4]),[],[])
    IF CSTRA!=AA
       N=N+1
    ENDIF
    INSERT INTO T VALUES (CSTRA,N)
    AA=CSTRA
    CSTRB=CSTRB+CSTRA
ENDFOR

SELECT A,B,[C]+TRANSFORM(B),CAST(COUNT(*) AS N(2)) C FROM T GROUP BY 2,1 INTO CURSOR T1
CALCULATE MAX(C) TO CS 

CNAME=[]
FOR I=1 TO _TALLY
    BB=[CC]+TRANSFORM(I)+[ C(2)]
    CNAME=CNAME+BB+IIF(I<_TALLY,[,],[])
ENDFOR
CREATE CURSOR S (&CNAME)
FOR I=1 TO CS
    APPEND BLANK
ENDFOR
SELECT T1
SCAN
   SELECT S
   SCAN
      REPLACE (FIELD(T1.B)) WITH T1.A FOR RECNO()<=T1.C
   ENDSCAN
ENDSCAN
SELECT S
CSTR=[]
SCAN
   FOR I=1 TO FCOUNT()
       CSTR=CSTR+EVALUATE(FIELD(I))+IIF(I<FCOUNT(),+[ ],CHR(13)+CHR(10))
   ENDFOR
ENDSCAN
?CSTR
一楼的代码稍作修改

坚守VFP最后的阵地
2013-03-10 21:13
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
CSTR=[12435789426473940012]
?CHRTRANC(CHRTRANC(CSTR,[01234],[小小小小小]),[56789],[大大大大大])

坚守VFP最后的阵地
2013-03-10 21:17
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:10 
sdta 版主好!
在你的代码中,加了2行(红色),可以防止:人为输入的 CSTR 字串中,偶尔有包含的空格,非法字符时,影响最终结果。(冒犯版主啦,可别生气呀!)

CLEAR
CSTR=[12435789426473940012]2
A=IIF(BETWEEN(LEFTC(CSTR,1),[0],[4]),[小],[大])
CSTRB=[]
CREATE CURSOR T (A C(2),B N(2))
N=1
FOR I=1 TO LEN(CSTR)
   if ASC(SUBSTRC(CSTR,I,1))>47 and ASC(SUBSTRC(CSTR,I,1))<59
    CSTRA=IIF(BETWEEN(SUBSTRC(CSTR,I,1),[0],[4]),[小],[大])
    IF CSTRA!=AA
       N=N+1
    ENDIF
    INSERT INTO T VALUES (CSTRA,N)
    AA=CSTRA
    CSTRB=CSTRB+CSTRA
   endif
ENDFOR
 ........
  ...........
 


2013-03-10 23:27
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
回复 6楼 qingfameng
谢谢
cstr=[123 中,,@]
?CHRTRANC(CSTR,CHRTRANC(CSTR,[0123456789],[]),[])
结果:123


[ 本帖最后由 sdta 于 2013-3-11 06:00 编辑 ]

坚守VFP最后的阵地
2013-03-11 05:55
林三少
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2009-9-3
收藏
得分:0 
多谢sdta 版主
又有新问题,继续发新贴
2013-03-11 20:00
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
问题解决了,要及时结贴!

坚守VFP最后的阵地
2013-03-11 22:08
快速回复:重新发贴,请帮忙解决问题
数据加载中...
 
   



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

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