| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1502 人关注过本帖
标题:请教:vfp REPLACE字段为变量的写法
只看楼主 加入收藏
liuq7
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-12-23
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
请教:vfp REPLACE字段为变量的写法
我有一个vfp表cs0,字段名为bh1,bh2,bh3,bh4,bh5,bh6,bh7,想实现的目的是:输入起、止编号后,将对应的编号分别写入bh1-bh7,由于起、止编号会变化,故写入的字段个数也会变化。现在的问题是每个i值都在每个与j对应的bh字段中各写了j条记录,但我是希望每个i值只写一次,并分别写入与j对应的bh字段中,如何能实现?麻烦各位大侠给修改指正一下。非常感谢!具体代码如下:
CLEAR
USE cs0
yy=INPUTBOX('输入起编号:')
kk=INPUTBOX('输入止编号:')
bb=VAL(ALLTRIM(kk))-VAL(ALLTRIM(yy))+1
FOR i=VAL(ALLTRIM(yy)) TO VAL(ALLTRIM(kk))
i=i
IF LEN(STR(i))=1
i0='00'+STR(i)
ENDIF
IF LEN(STR(i))=2
i0='0'+STR(i)
ENDIF
IF LEN(STR(i))>2
i0=STR(i)
ENDIF
FOR j=1 TO bb
j=j
bh0=ALLTRIM(ALLTRIM('bh')+ALLTRIM(STR(j)))
APPEND blank
REPLACE &bh0 WITH STR(i0)
endfor
ENDFOR
USE
return
搜索更多相关主题的帖子: vfp 字段 STR REPLACE 编号 
2021-01-27 18:01
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10608
专家分:43190
注 册:2014-5-20
收藏
得分:10 
参考
程序代码:
n = 3
CREATE CURSOR cs0 (bh1 C(n),bh2 C(n),bh3 C(n),bh4 C(n),bh5 C(n),bh6 C(n),bh7 C(n))
CLEAR
yy=INT(VAL(INPUTBOX('输入起编号:')))
kk=INT(VAL(INPUTBOX('输入止编号:')))
IF !BETWEEN(yy,1,7) OR !BETWEEN(kk,1,7) 
    RETURN
ENDIF
APPEND BLANK
FOR i=yy TO kk
    REPLACE ("bh"+TRANSFORM(i)) WITH PADL(i,n,"0")
ENDFOR
SELECT * FROM cs0
USE
2021-01-27 21:32
liuq7
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-12-23
收藏
得分:0 
回复 2楼 吹水佬
非常感谢!我的想法是:如起编号为4,止编号为8,则bh1写入004、bh2写入005、bh3写入006、bh4写入007、bh5写入008,以此类推,起止编号不一定是1-7之间。代码改为如下后,对应字段写入的都是止编号,应该怎么写才能实现目的呢?再次感谢!
n = 3
CREATE CURSOR cs (bh1 C(n),bh2 C(n),bh3 C(n),bh4 C(n),bh5 C(n),bh6 C(n),bh7 C(n))
CLEAR
yy=INT(VAL(INPUTBOX('输入起编号:')))
kk=INT(VAL(INPUTBOX('输入止编号:')))
bb=kk-yy+1
IF !BETWEEN(bb,1,7)
    RETURN
ENDIF
APPEND BLANK
FOR i=1 TO bb
FOR j=yy TO kk
    REPLACE ("bh"+TRANSFORM(i)) WITH PADL(j,n,"0")
ENDFOR
ENDfor
brow

[此贴子已经被作者于2021-1-28 11:05编辑过]

2021-01-28 10:41
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9844
专家分:27213
注 册:2012-2-5
收藏
得分:10 
CREATE CURSOR cs (bh1 C(n),bh2 C(n),bh3 C(n),bh4 C(n),bh5 C(n),bh6 C(n),bh7 C(n))
yy=INT(VAL(INPUTBOX('输入起编号:')))
kk=INT(VAL(INPUTBOX('输入止编号:')))
bb = kk - yy + 1
IF !BETWEEN(bb,1,7)
    RETURN
ENDIF
APPEND BLANK
FOR j=yy TO kk
    REPLACE ("bh"+TRANSFORM(j - yy + 1)) WITH PADL(j,n,"0")
ENDFOR
BROWSE


[此贴子已经被作者于2021-1-28 11:27编辑过]


坚守VFP最后的阵地
2021-01-28 11:23
liuq7
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-12-23
收藏
得分:0 
回复 4楼 sdta
可以了,非常感谢!
2021-01-28 14:45
快速回复:请教:vfp REPLACE字段为变量的写法
数据加载中...
 
   



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

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