| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 752 人关注过本帖
标题:问题出在哪啊,麻烦帮忙看看,谢谢!
只看楼主 加入收藏
蘑菇702
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2013-3-31
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:10 
问题出在哪啊,麻烦帮忙看看,谢谢!
统计输入的一串字符中大小写字母,数字,其他的个数的代码,要是scx文件类型的代码。
下面是我写的
a=0
b=0
c=0
d=0
i=1
do while .T.
   if i<=len(x)
      y=subs(x,i,1)
      do case
         case asc(y)>=65 and asc(y)<=90
              a=a+1
         case asc(y)>=97 and asc(y)<=122
              b=b+1
         case asc(y)>=48 and asc(y)<=57
              c=c+1
         case asc(y)<48 and asc(y)>122
              d=d+1
      endcase
      else
      exit
    endif
enddo
thisform.label6.caption=str(a)
thisform.label7.caption=str(b)
thisform.label8.caption=str(c)
thisform.label9.caption=str(d)

搜索更多相关主题的帖子: asc 
2013-03-31 14:34
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
错误提示是什么
2013-03-31 14:45
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
A=0
B=0
C=0
D=0
I=1
X=[Aa123,,]
DO WHILE .T.
   IF I<=LEN(X)
      Y=SUBSTRC(X,I,1)
      DO CASE
         CASE ASC(Y)>=65 AND ASC(Y)<=90
              A=A+1
         CASE ASC(Y)>=97 AND ASC(Y)<=122
              B=B+1
         CASE ASC(Y)>=48 AND ASC(Y)<=57
              C=C+1
         CASE ASC(Y)<48 AND ASC(Y)>122
              D=D+1
      ENDCASE
   ELSE
      EXIT
   ENDIF
   I=I+1
ENDDO
?A,B,C,D

坚守VFP最后的阵地
2013-03-31 14:52
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
A=0
B=0
C=0
D=0
I=1
X=[Aa123,,]

DO WHILE .T.
   IF I<=LEN(X)
      Y=SUBSTRC(X,I,1)
      DO CASE
         CASE BETWEEN(ASC(Y),65,90)
              A=A+1
         CASE BETWEEN(ASC(Y),97,122)
              B=B+1
         CASE BETWEEN(ASC(Y),48,57)
              C=C+1
         CASE ASC(Y)<48 AND ASC(Y)>122
              D=D+1
      ENDCASE
   ELSE
      EXIT
   ENDIF
   I=I+1
ENDDO
?A,B,C,D

坚守VFP最后的阵地
2013-03-31 14:56
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:10 
A=0
B=0
C=0
D=0
I=1
X=[Aa123,,]
FOR I=1 TO LEN(X)
      Y=SUBSTRC(X,I,1)
      DO CASE
         CASE BETWEEN(ASC(Y),65,90)
              A=A+1
         CASE BETWEEN(ASC(Y),97,122)
              B=B+1
         CASE BETWEEN(ASC(Y),48,57)
              C=C+1
         CASE ASC(Y)<48 AND ASC(Y)>122
              D=D+1
      ENDCASE
ENDFOR
?A,B,C,D

坚守VFP最后的阵地
2013-03-31 14:59
蘑菇702
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2013-3-31
收藏
得分:0 
回复 2楼 tlliqi
就是运行的时候,一直不能出结果,然后整个vfp就卡到
2013-03-31 15:47
蘑菇702
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2013-3-31
收藏
得分:0 
回复 5楼 sdta
第六行那个是什么意思
2013-03-31 15:49
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用蘑菇702在2013-3-31 15:47:45的发言:

就是运行的时候,一直不能出结果,然后整个vfp就卡到
看来是少了象2楼提示的i=i+1

其实用for循环就简便 就象4楼的
2013-03-31 15:51
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:10 
以下是引用蘑菇702在2013-3-31 15:49:33的发言:

第六行那个是什么意思
照4楼的 稍加改动
程序代码:
a=0
b=0
c=0
d=0
i=1
FOR i=1 TO len(x)
      y=subs(x,i,1)
      do case
         case asc(y)>=65 and asc(y)<=90
              a=a+1
         case asc(y)>=97 and asc(y)<=122
              b=b+1
         case asc(y)>=48 and asc(y)<=57
              c=c+1
         case asc(y)<48 and asc(y)>122
              d=d+1
      endcase
endf
thisform.label6.caption=str(a)
thisform.label7.caption=str(b)
thisform.label8.caption=str(c)
thisform.label9.caption=str(d)

2013-03-31 15:53
蘑菇702
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2013-3-31
收藏
得分:0 
回复 4楼 sdta
成功了,谢谢,谢谢!
2013-03-31 16:03
快速回复:问题出在哪啊,麻烦帮忙看看,谢谢!
数据加载中...
 
   



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

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