注册 登录
编程论坛 VFP论坛

新手想请教一个编程方面的问题。

kelp2000 发布于 2021-03-15 10:34, 1600 次点击
我想对一个数据库上下两行数据做一个比较,想知道上下两行数据有几个重复的数字,先取第二行第一个数字与第一行作比较,有重复的就是C,没有重复的,然后取第二行第二个数字与第一行比较,一直到第二行最后一数字比较完毕后,显示C的值,就是一共有多少个重复的数字。
n=1
m=1
if a(n)=b(m)
c=c+1
else m=m+1
endif

这样的结果是b.prg不存在,请问这样的问题出现在何处?

谢谢各位大佬的不吝请教了。。
7 回复
#2
吹水佬2021-03-15 14:21
b声明的是什么
#3
kelp20002021-03-15 14:39
回复 2楼 吹水佬
可能是我没说清楚,a(n)代表第一行的数字,a1是第一行第一列,a2是第一行第二列,。。。。。。这样一直排下去,a(n)代表第一行第n列。

然后我为了检查第二行里有多少数字是与第一行重复的,所以b1是第二行第一列,然后与第一行的所有数字进行比较,如果有重复的,那么C+1,没有,那么再用b2与第一行所有数字进行比较,然后一直到b(m)与a(n)中的所有数字比较完成后,

C的结果是多少,就代表第二行与第一行的重复数字有多少个。
#4
wengjl2021-03-15 14:56
给你一个思路:
设你的原始数据表共有N条记录。将1到N-1条记录拷贝为表A。将2到N条记录拷贝为表B,这样A、B二个表的记录数是相等的,二个表的相同ID号记录对应你原始表的上下2条记录。所以只对AB二表的相同 记录号的2条记录进行对比即可。
把比对结果记录在第4个表中(设为C表)。

因为,光在你的原始表里作比较,很麻烦,表的指针要不断地跳上跳下,不易掌控。

[此贴子已经被作者于2021-3-15 14:59编辑过]

#5
kelp20002021-03-15 15:05
回复 4楼 wengjl
十分感谢回复,我现在的问题是想请教各位大佬,象这样的比较应该是怎么写程序的,因为目前工作需要,需要学习python,但由于以前学过foxbase的,也开发过几个小程序的,但这么久不用了,很多都忘了,想通过回忆这些小程序的编写方式,整理一下自己的编程思路,方便学习PYTHON,谢谢了。
#6
强国学习2021-03-16 08:20
dime a[1,10],b[1,10]
go 1
scatt to a
go 2
scatt to b
c=0
for i=1 to 10
    for j=1 to 10
       for k=1 to len(alltrim(b[1,j])
           d=left(alltrim(b[1,j]),k)
             if at(d ,alltrim(a[1,i]))>0
                c=c+1
             endi
       endf
    endf
endf
#7
sdta2021-03-16 09:12
用数组的方法很容易处理楼主的问题
#8
sdta2021-03-16 09:21
楼主的问题应该是彩票中的重码问题
1