标题:把具体字符串换成表中字段,如何操作?
只看楼主
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
结帖率:96.99%
已结贴  问题点数:20 回复次数:14 
把具体字符串换成表中字段,如何操作?
jftj.rar (256 Bytes)



把表文件jftj中的字段zifu替换代码中的zhifu='aaddcdadbbabbbc']来计算语文老师的积分(字母1-5)、数学老师的积分(字母6-10)、英语老师的积分(字母11-15),
并分别写入jftj.dbf的yw、sx、yy字段中。
积分规则:A 10分 B 9分 C 8分 D 7分

具体代码如下:(只修改)
CLEAR
fz='a10b09c08d07'
ls='语文数学外语'

zhifu='aaddcdadbbabbbc'把这一句换成jftj.dbf中的zifu字段内容如何操作?

FOR i=1 TO 15 STEP 5
    vz = SUBSTR(zhifu,i,5)
    jg = 0
    FOR j=1 TO 12 STEP 3
        zz  = SUBSTR(fz,j,1)
        zzz = VAL(SUBSTR(fz,j+1,2))
        jg = jg +(LEN(vz)-len(CHRTRAN(vz,zz,'')))*zzz这一句有问题
    ENDFOR
    ?SUBSTR(ls,((i-1)/5)*4+1,4)+":"+STR(jg,4)  如何把具体积分分别写入表文件jftj.dbf的yw、sx、yy字段中
ENDFOR   
搜索更多相关主题的帖子: 积分 操作 老师 字符串 字段 
2023-05-09 15:35
ybq1014
Rank: 2
等 级:论坛游民
帖 子:13
专家分:16
注 册:2012-12-19
得分:0 
回复 楼主 王咸美
今天很忙,刚看到消息,晚点回复。
2023-05-09 18:29
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
下列代码不知道问题出在哪里? 无法计算出yw 、sx 、yy 的积分。

CLEAR
fz='a10b09c08d07'
ls='语文数学外语'
SCAN
USE jftj IN 0 ALIAS jftj
zhifu=jftj.zifu

FOR i=1 TO 15 STEP 5
    vz = SUBSTR(zhifu,i,5)
    jg = 0
    FOR j=1 TO 12 STEP 3
        zz  = SUBSTR(fz,j,1)
        zzz = VAL(SUBSTR(fz,j+1,2))
        jg = jg +(LEN(vz)-len(CHRTRAN(vz,zz,'')))*zzz
    ENDFOR
  * ? SUBSTR(ls,((i-1)/5)*4+1,4)+":"+STR(jg,4)  
    DO CASE
       CASE SUBSTR(ls,((i-1)/5)*4+1,4)=“语文”
           Repl yw with str(jg,4)
       CASE SUBSTR(ls,((i-1)/5)*4+1,4)=“数学”
           Repl sx with str(jg,4)
       CASE SUBSTR(ls,((i-1)/5)*4+1,4)=“外语”
           Repl yy with str(jg,4)
     ENDCASE
ENDFOR   
ENDSCAN
BROWSE

[此贴子已经被作者于2023-5-10 18:01编辑过]

2023-05-10 17:44
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
SUBSTRATE() VFP中没见过这个函数

坚守VFP最后的阵地
2023-05-10 17:52
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
已修正,还请指教。

[此贴子已经被作者于2023-5-10 18:40编辑过]

2023-05-10 18:02
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:10 
以下是引用王咸美在2023-5-10 17:44:34的发言:
    DO CASE
       CASE SUBSTR(ls,((i-1)/5)*4+1,4)=“语文”
           Repl yw with str(jg,4)
       CASE SUBSTR(ls,((i-1)/5)*4+1,4)=“数学”
           Repl sx with str(jg,4)
       CASE SUBSTR(ls,((i-1)/5)*4+1,4)=“外语”
           Repl yy with str(jg,4)
     ENDCASE

这几句改用一句应该就可以了
REPLACE (FIELD((i-1)/5+3)) WITH jg
2023-05-10 19:14
ybq1014
Rank: 2
等 级:论坛游民
帖 子:13
专家分:16
注 册:2012-12-19
得分:10 
回复 楼主 王咸美
程序代码:
CLOSE TABLES 
CLEAR
fz='A10B09C08D07' &&改大写,与表统一呀
ls='yw,sx,yy' &&汉字和字母无所谓,但要统一啊!
=ALINES(akm,ls,1+4,',')  &&放在数组里,很方便存取,它是内存变量呀
USE jftj IN 0
SELECT jftj
SCAN  &&就这样换
zhifu=zifu  &&把这一句换成jftj.dbf中的zifu字段内容如何操作?
FOR i=1 TO 15 STEP 5
    vz = SUBSTR(zhifu,i,5)
    jg = 0
    FOR j=1 TO 12 STEP 3
        zz  = SUBSTR(fz,j,1)
        zzz = VAL(SUBSTR(fz,j+1,2))
        jg = jg +(LEN(vz)-LEN(CHRTRAN(vz,zz,'')))*zzz   &&这一句没有问题
        
    ENDFOR
    &&?SUBSTR(ls,((i-1)/5)*4+1,4)+":"+STR(jg,4)  如何把具体积分分别写入表文件jftj.dbf的yw、sx、yy字段中
    REPLACE (akm[CEILING(i/5)]) WITH jg  &&就这样写入
ENDFOR   
ENDSCAN
BROWSE


可以这样修改你的程序

[此贴子已经被作者于2023-5-10 19:32编辑过]

2023-05-10 19:27
tigerpub
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2023-4-20
得分:0 
帮助人雷锋精神是伟大的.但感觉这些很基础的问题总是求助区免费问('不耻下问')不太应该吧.论坛不对回复者帮助者搞在线捐助吗?赚自己的钱让别人代干的味道,个人觉得技术点可以讨论,忙可以适当帮,无偿代写作业代写业务功能就不太好了吧.都闲着没事干?
2023-05-10 21:42
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
结合上面各位朋友的代码,总结如下
程序代码:
CLOSE DATABASES 
USE jftj
lccj = "10,9,8,7"
ALINES(acj, lccj, ",")
SCAN 
    FOR ln1 = 1 TO LEN(ALLTRIM(zifu)) STEP 5
        lc1 = SUBSTR(ALLTRIM(zifu), ln1, 5)
        lnSum = 0
        FOR ln2 = 1 TO LEN(lc1)
            lc2 = SUBSTR(lc1, ln2, 1)
            lnSum = lnSum + VAL(acj[ASC(lc2) - 64]) && 只针对本例中的ABCD
        ENDFOR
        REPLACE (FIELD(2 + CEILING(ln1/5))) WITH lnSum
    ENDFOR
ENDSCAN
BROWSE 

坚守VFP最后的阵地
2023-05-10 22:14
ybq1014
Rank: 2
等 级:论坛游民
帖 子:13
专家分:16
注 册:2012-12-19
得分:0 
回复 9楼 sdta
高手就是这样,惜字如金!
2023-05-10 22:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-512138-1-1.html




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

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