注册 登录
编程论坛 VFP论坛

VFP如何查看数据逆序所在的位置

if先生 发布于 2022-07-21 00:16, 2480 次点击
例如一个数据库,有一个字段为出货号为逆序,且相隔1000且2000一个循环,如何能准确的找出想要的出货号内容在第几条记录?
在有数据库的情况下能用LOCATE命令,但在没有数据库的情况下如何按数据库逆序的逻辑直接计算出(CF4588)位置?

例如数据库如下(附件中有数据库):
出货号
CF2000
CF1000
CF1999
CF999
CF1998
CF998
.
.
.
.
CF1001
CF1
-------------
CF4000
CF3000
CF3999
CF2999
.
.
CF3001
CF2001

只有本站会员才能查看附件,请 登录
11 回复
#2
sdta2022-07-21 07:19
VFP9代码
程序代码:
CLEAR
TEXT TO lcStr NOSHOW TEXTMERGE
CF2000
CF1000
CF1999
CF999
CF1998
CF998
CF1001
CF1
CF4600
CF4588
CF4400
CF4000
CF3000
CF3999
CF2999
CF3001
CF2001
ENDTEXT
ALINES(laStr, lcStr)
LIST MEMORY LIKE laStr
IF ASCAN(laStr, "CF4588") > 0
    ?ASCAN(laStr, "CF4588") && 返回 CF4588 所在的位置
ENDIF
#3
sdta2022-07-21 07:22
方法二

FOR ln = 1 TO ALEN(laStr, 1)
    IF laStr[ln] == "CF4588"
        ?ln
    ENDIF
ENDFOR
#4
吹水佬2022-07-21 08:36
“没有数据库”又要“按数据库逻辑”计算出(CF4588)位置.......不好理解??
到底“CF4588”存在哪里? 提供的是DBF,就不存在没有数据库的情况。
#5
csyx2022-07-21 10:54


[此贴子已经被作者于2022-7-22 05:09编辑过]

#6
if先生2022-07-23 02:26
回复 4楼 吹水佬
已经研究出来了,用一个公式去计算,在有特定的数值情况正,计算出某个数所在的位置!
#7
if先生2022-07-23 02:27
回复 3楼 sdta
谢谢版主的支持,我新建了个表单,然后让用户输入某些特定的数值,然后直接用公式计算出位置了!
#8
mywisdom882022-07-23 08:24
要位置做什么,VFP不是有记录号吗
#9
hu9jj2022-07-23 08:40
我也不理解为什么要知道位置,在数据库中只要能迅速准确的按关键字取得所需的数据就行了,何必关心数据存放的物理位置。
#10
吹水佬2022-07-23 09:08
理解问题,可能是楼主没有说清楚“在没有数据库的情况”是什么情况?
#11
if先生2022-07-24 02:04
回复 10楼 吹水佬
因为数据库里是为了方便提问问题而做出来的,实际目的是直接计算出某个数所在的位置,例如1至100数字倒序就成了100至1,我需要计算的是“98”这个数值会出现在倒序的哪个位置(3)出现.
里面涉及到另外几种数据的倒序和顺序计算方式,之前摸索了好久才没结果才来请教各位大神。
目前已经用CEILING和MOD组全公式成功计算出结果。
谢谢大家的援手!
#12
吹水佬2022-07-26 11:51
以下是引用if先生在2022-7-24 02:04:20的发言:

因为数据库里是为了方便提问问题而做出来的,实际目的是直接计算出某个数所在的位置,例如1至100数字倒序就成了100至1,我需要计算的是“98”这个数值会出现在倒序的哪个位置(3)出现.
里面涉及到另外几种数据的倒序和顺序计算方式,之前摸索了好久才没结果才来请教各位大神。
目前已经用CEILING和MOD组全公式成功计算出结果。
谢谢大家的援手!

提供的是DBF表数据,也是用VFP来处理,从DBF文件中找个数据有那么复杂吗?
顺序倒序只是相对来说,知道顺序位置也应该知道倒序位置。
1